Context based virtual area creation

ABSTRACT

Examples of systems and methods for context based virtual area creation are described. Some examples provide a quick and easy way for users to wrap virtual areas around contexts of interest. Examples of such contexts may be defined in terms of one or more of content, people, and real-world location. The virtual areas support realtime communications between communicants (e.g., one or more of text chat, voice, video, application sharing, and file sharing) and provide a persistent historical repository for interactions in the virtual area. Summaries of activities and other events in virtual areas typically are published in realtime so that other communicants can readily obtain a quick summary of the activities occurring in a particular context and decide whether or not to join or otherwise participate in those activities.

CROSS-REFERENCE TO RELATED APPLICATIONS

Under 35 U.S.C. §119(e), this application claims the benefit of U.S.Provisional Application No. 61/682,218, filed Aug. 11, 2012, theentirety of which is incorporated herein by reference.

This application relates to the following co-pending patentapplications, the entirety of each of which is incorporated herein byreference:

U.S. application Ser. No. 12/818,517, filed Jun. 18, 2010;

U.S. application Ser. No. 12/855,210, filed Aug. 12, 2010;

U.S. application Ser. No. 12/630,973, filed Dec. 4, 2009;

U.S. application Ser. No. 12/418,243, filed Apr. 3, 2009;

U.S. application Ser. No. 12/354,709, filed Jan. 15, 2009;

U.S. application Ser. No. 12/825,512, filed Jun. 29, 2010;

U.S. application Ser. No. 12/630,973, filed Dec. 4, 2009;

U.S. application Ser. No. 12/509,658, filed Jul. 27, 2009;

U.S. application Ser. No. 13/165,729, filed Jun. 21, 2011;

U.S. application Ser. No. 13/209,812, filed Aug. 15, 2011;

U.S. application Ser. No. 13/209,812, filed Aug. 15, 2011;

U.S. application Ser. No. 13/399,737, filed Feb. 17, 2012;

U.S. application Ser. No. 13/432,837, filed Mar. 28, 2012;

U.S. application Ser. No. 13/554,051, filed Jul. 20, 2012;

U.S. application Ser. No. 13/554,084, filed Jul. 20, 2012;

U.S. Provisional Application No. 61/563,088, filed Nov. 23, 2011;

U.S. Provisional Application No. 61/535,910, filed Sep. 16, 2011;

U.S. Provisional Application No. 61/597,757, filed Feb. 11, 2012; and

U.S. Provisional Application No. 61/603,024, filed Feb.24, 2012.

BACKGROUND

When face-to-face communications are not practical, people often rely onone or more technological solutions to meet their communications needs.Traditional telephony systems enable voice communications betweencallers. Instant messaging (also referred to as “chat”) communicationssystems enable users to communicate text messages in real time throughinstant message computer clients that are interconnected by an instantmessage server. Some instant messaging systems and interactive virtualreality communications systems allow users to be represented byuser-controllable graphical objects (referred to as “avatars”). What areneeded are improved systems and methods for realtime networkcommunications.

DESCRIPTION OF DRAWINGS

FIG. 1 is a diagrammatic view of an example of a network communicationsenvironment.

FIGS. 2A-2C are diagrammatic views of examples of virtual areas wrappedaround different respective contents.

FIG. 3 is a diagrammatic view of examples of information flows relatingto a virtual area.

FIG. 4 is a diagrammatic view of an example of a network communicationsenvironment.

FIG. 5 is a diagrammatic view of an example of a virtual area.

FIG. 6 is a diagrammatic view of an example of a virtual area.

FIG. 7A shows an example of a network communications environment.

FIG. 7B shows an example of an application.

FIG. 8 is a flow diagram of an example of a context based virtual areacreation method.

FIG. 9 is a diagrammatic view of an example of a graphical userinterface.

FIG. 10 is a diagrammatic view of an example of a graphical userinterface.

FIGS. 11A-11B are diagrammatic views of an example of a graphical userinterface.

FIG. 12 is a flow diagram of an example of a context based virtual areacreation method.

FIG. 13 is a diagrammatic view of an example of a graphical userinterface.

FIG. 14 is a flow diagram of an example of a context based virtual areacreation method.

FIGS. 15A-15B are diagrammatic view of examples of networkcommunications environments.

FIG. 16 is a diagrammatic view of an example of a graphical userinterface.

FIG. 17 is a diagrammatic view of an example of a graphical userinterface.

FIG. 18 is a diagrammatic view of an example of a graphical userinterface.

FIG. 19 is a diagrammatic view of an example of a graphical userinterface.

FIG. 20 is a flow diagram of an example of a method that involvespublishing area activity summaries.

FIG. 21 is a flow diagram of an example of a method that involvesdisplaying area activity summaries.

FIGS. 22A-22B are diagrammatic views of an example of a graphical userinterface.

FIG. 23 is a diagrammatic view of an example of a graphical userinterface.

FIG. 24 is a diagrammatic view of an example of a graphical userinterface.

FIGS. 25A-25B are diagrammatic views of an example of a graphical userinterface.

FIG. 26 is a diagrammatic view of an example of a graphical userinterface.

FIG. 27 is a diagrammatic view of an example of a network communicationsenvironment.

DETAILED DESCRIPTION

In the following description, like reference numbers are used toidentify like elements. Furthermore, the drawings are intended toillustrate major features of exemplary embodiments in a diagrammaticmanner. The drawings are not intended to depict every feature of actualembodiments nor relative dimensions of the depicted elements, and arenot drawn to scale.

I. Definitions of Terms

A “communicant” is a person who communicates or otherwise interacts withother persons over one or more network connections, where thecommunication or interaction may or may not occur in the context of avirtual area. A “user” is a communicant who is operating a particularnetwork node that defines a particular perspective for descriptivepurposes.

A “computer” is any machine, device, or apparatus that processes dataaccording to computer-readable instructions that are stored on acomputer-readable medium either temporarily or permanently. A “computeroperating system” is a software component of a computer system thatmanages and coordinates the performance of tasks and the sharing ofcomputing and hardware resources. A “software application” (alsoreferred to as software, an application, computer software, a computerapplication, a program, and a computer program) is a set of instructionsthat a computer can interpret and execute to perform one or morespecific tasks. A “data file” is a block of information that durablystores data for use by a software application.

The term “computer-readable medium” refers to any tangible,non-transitory medium capable storing information (e.g., instructionsand data) that is readable by a machine (e.g., a computer). Storagedevices suitable for tangibly embodying such information include, butare not limited to, all forms of physical, non-transitorycomputer-readable memory, including, for example, semiconductor memorydevices, such as random access memory (RAM), EPROM, EEPROM, and Flashmemory devices, magnetic disks such as internal hard disks and removablehard disks, magneto-optical disks, DVD-ROM/RAM, and CD-ROM/RAM.

A “data sink” (referred to herein simply as a “sink”) is any of a device(e.g., a computer), part of a device, or software that receives data.

A “data source” (referred to herein simply as a “source”) is any of adevice (e.g., a computer), part of a device, or software that originatesdata.

A “network node” (also referred to simply as a “node”) is a junction orconnection point in a communications network. Examples of network nodesinclude, but are not limited to, a terminal, a computer, and a networkswitch. A “server” network node is a host computer on a network thatresponds to requests for information or service. A “client network node”is a computer on a network that requests information or service from aserver.

A Uniform Resource Identifier (URI) is a string of characters thatidentifies a network resource.

A “network resource” is anything that can be identified by a uniformresource identifier (URI) and accessed over a network, including anelectronic document, an image, a source of information, a service,operators and operands of a mathematical equation, classes, properties,numeric values, and a collection of other resources.

A “network connection” is a link between two communicating networknodes. A “connection handle” is a pointer or identifier (e.g., a uniformresource identifier (URI)) that can be used to establish a networkconnection with a network resource. A “network communication” caninclude any type of information (e.g., text, voice, audio, video,electronic mail message, data file, motion data stream, and data packet)that is transmitted or otherwise conveyed from one network node toanother network node over a network connection.

A “communicant interaction” is any type of direct or indirect action orinfluence between a communicant and another network entity, which mayinclude for example another communicant, a virtual area, or a networkservice. Examples of types of communicant interactions includecommunicants communicating with each other in realtime, a communicantentering a virtual area, and a communicant requesting access to aresource from a network service.

“Presence” refers to the ability and willingness of a networked entity(e.g., a communicant, service, or device) to communicate, where suchwillingness affects the ability to detect and obtain information aboutthe state of the entity on a network and the ability to connect to theentity.

A “realtime data stream” is data that is structured and processed in acontinuous flow and is designed to be received with no delay or onlyimperceptible delay. Realtime data streams include digitalrepresentations of voice, video, user movements, facial expressions andother physical phenomena, as well as data within the computingenvironment that may benefit from rapid transmission, rapid execution,or both rapid transmission and rapid execution, including for example,avatar movement instructions, text chat, realtime data feeds (e.g.,sensor data, machine control instructions, transaction streams and stockquote information feeds), screen shares, and file transfers.

A “virtual area” (also referred to as an “area,” a “place,” or a“space”) is a representation of a computer-managed space or scene.Virtual areas typically are one-dimensional, two-dimensional, orthree-dimensional representations; although in some examples a virtualarea may correspond to a single point. Oftentimes, a virtual area isdesigned to simulate a physical, real-world space. For example, using atraditional computer monitor, a virtual area may be visualized as atwo-dimensional graphic of a three-dimensional computer-generated space.However, virtual areas do not require an associated visualization. Avirtual area typically refers to an instance of a virtual area schema,where the schema defines the structure and contents of a virtual area interms of variables and the instance defines the structure and contentsof a virtual area in terms of values that have been resolved from aparticular context.

A “position” in a virtual area refers to a location of a point or anarea or a volume in the virtual area. A point typically is representedby a single set of one-dimensional, two-dimensional, orthree-dimensional coordinates (e.g., x, y, z) that define a spot in thevirtual area. An area typically is represented by the three-dimensionalcoordinates of three or more coplanar vertices that define a boundary ofa closed two-dimensional shape in the virtual area. A volume typicallyis represented by the three-dimensional coordinates of four or morenon-coplanar vertices that define a closed boundary of athree-dimensional shape in the virtual area.

A “summary of an area” is a view on data associated with a virtual area.In some examples, a summary of a virtual area refers to a view on thedata associated with the respective area object generated for thatvirtual area.

An “assembly” is a gathering of two or more copresent communicants in avirtual area location that defines a context for realtime communicationsbetween the copresent communicants.

A “predicate” is a conditional part of a rule. A predicate typicallyconditions a result or action (e.g., the creation of a virtual area) onsatisfaction of one or more criteria.

A “request” is a communication for a network node or service to performa function. A request may be made in a single data transmission or in acollection of related data transmissions.

As used herein, the term “includes” means includes but not limited to,the term “including” means including but not limited to. The term “basedon” means based at least in part on.

II. Context Based Virtual Area Creation

The examples that are described herein provide systems and methods forcontext based virtual area creation. Some examples provide a quick andeasy way for users to wrap virtual areas around contexts of interest,which may be defined, for example, in terms of one or more of content,people, and real-world location. The virtual areas support realtimecommunications between communicants (e.g., text chat, voice, video,application sharing, and file sharing) and provide a persistenthistorical repository for interactions in the virtual area. Summaries ofactivities and other events in virtual areas typically are published inrealtime so that other communicants can readily obtain a quick summaryof the activities occurring in a particular context and decide whetheror not to join or otherwise participate in those activities. The areaactivity summaries may be published to all communicants, only thosecommunicants who are socially related to (e.g., friends orfriends-of-friends of) the activity participants or the members of thevirtual area, or only members of the virtual area. Similarly, access toa virtual area may be restricted to particular communicants (e.g.,members of the virtual area), open to communicants who are sociallyrelated to (e.g., friends or friends-of-friends) the members of thevirtual area or the participants engaged in published activities in thevirtual area, or open to all users. In some examples, communicants can“lurk” and view the realtime activities of communicants in a virtualarea before entering the virtual area so that they can quickly browsevarious realtime contexts of potential interest without changing theircurrent presence state.

FIG. 1 shows an embodiment of a network communications environment 1that includes a virtual area platform 2, and client network nodes 3.Users of the client network nodes 3 may define contexts 4 in terms ofdata from one or more of the virtual area platform 2, the client networknodes 3 themselves, and other data sources 5. The contexts 4 also may bedefined by the virtual area platform 2 and third-party entities.

The contexts 4 may be defined, for example, in terms of one or more ofcontent, people, and real-world location. Content items include localcontent (e.g., documents, images, video files, and audio files) storedon the client network nodes 3, social network content (e.g., activityfeeds), image content (e.g., photographs), streaming media content(e.g., streaming audio, streaming video), syndicated web feed content(e.g., webpages, blogs, and podcasts), and conversation thread content(e.g., wiki boards, micro-blogs such as Twitter® feeds, emails, bulletinboards, newsgroups, internet forum threads, comment threads). Peoplebased contexts include data relating to users' contacts received fromthe virtual area platform 2, social network services, and othercommunication services (e.g., instant messaging services, email hostingservices, and internet forum services). Location based contexts includereal-world locations of mobile apparatus (e.g., mobile phones andvehicles) and real-world locations of stationary apparatus (e.g.,network equipment) and structures (e.g., buildings).

The virtual area platform 2 creates virtual areas 6 based on thecontexts 4. In the examples shown in FIGS. 2A-2C, the contexts 7, 8, and9 are defined by one or more content items, one or more contacts, andone or more real-world locations, respectively. The virtual areaplatform 2 wraps respective virtual areas around the contexts 7, 8, and9 by creating area objects that respectively represent the virtualareas, and associating the area objects with the respective contexts 7,8, and 9 and information relating to the context-defining entity (e.g.,a communicant or third party entity).

The virtual area platform 2 administers the virtual areas 6. In theexample, shown in FIG. 3, the virtual area platform 2 administerscommunicant presence in virtual area, realtime communications betweencommunicants who are co-present in the virtual area, co-consumption ofcontent (e.g., images, streaming audio, streaming video, and synchronousapplication sharing content) by co-present communicants, interactionhistory (e.g., text chat and event logs) in the virtual area, andmembership of the virtual area. These additional data and realtimeinteraction activity data augment and modify the original contexts 4around which the virtual areas 6 were created.

The virtual area platform 2 also handles publication of realtime areaactivity feeds describing realtime interactions in the virtual area, andmanages access to the virtual area by viewers and potential entrantsinto the virtual area.

The virtual area platform 2 and the client network nodes 3 may beimplemented in a variety of different ways.

FIG. 4 shows an example 10 of the network communications environment 1that includes an example of a first client network node 12 (Client NodeA), an example of a second client network node 14 (Client Network NodeB), an example 18 of the virtual area platform 2, and an optional proxynetwork node 19 that are interconnected by a network 20. The network 20may include one or more of a local area network (LAN), a metropolitanarea network (MAN), and a wide area network (WAN) (e.g., the internet).The network 20 typically includes a number of different computingplatforms and transport facilities that support the transmission of awide variety of different media types (e.g., text, voice, audio, video,and other data) between network nodes.

The first client network node 12 includes a computer-readable medium 22(or “memory”), a processor 24, and input/output (I/O) hardware 25(including, e.g., a display and network communication hardware). Theprocessor 24 executes at least one virtual area communicationsapplication 26 that is stored in the memory 22. The second clientnetwork node 14 typically is configured in substantially the samegeneral way as the first client network node 12, with acomputer-readable medium 30 storing at least one virtual areacommunications application 32, a processor 34, and I/O hardware 36.

Each of the network nodes 12, 14 has a respective set of one or moresources and an exemplary set of one or more sinks. Each source is adevice or component that originates data of a particular data streamcontent type and each sink is a device or component that receives dataof a particular data stream content type. A source and a sink of thesame data stream content type are referred to herein as being“complementary.” Exemplary sources include an audio source (e.g., anaudio capture device, such as a microphone), a video source (e.g., avideo capture device, such as a video camera), a chat source (e.g., atext capture device, such as a keyboard), a motion data source (e.g., apointing device, such as a computer mouse), and other sources (e.g.,file sharing source or a source of a customized real-time data stream).Exemplary sinks include an audio sink (e.g., an audio rendering device,such as a speaker or headphones), a video sink (e.g., a video renderingdevice, such as a display monitor), a chat sink (e.g., a text renderingdevice, such as a display monitor), a motion data sink (e.g., a movementrendering device, such as a display monitor), and other sinks (e.g., aprinter for printing shared files, a device for rendering real-time datastreams different from those already described, or software thatprocesses real-time streams for analysis or customized display). Eachsource has an active state in which the source is available fororiginating data and an inactive state in which the source is notavailable for originating data. Likewise, each sink has an active statein which the sink is available for receiving data and an inactive statein which the sink is not available for receiving data. The communicantsoperating the client nodes 12, 14 typically can control the states ofthe sources and sinks using controls provided by the communicationsapplications 26, 32. For example, in some examples, the communicationsapplications 26, 32 provide user controls for turning on/off the localmicrophones and the local speakers (e.g., headsets) on the clientnetwork nodes 12, 14.

The virtual area platform 18 includes at least one server network node40 that provides a network infrastructure service environment 42 thatmanages sessions of the first and second client nodes 12, 14 in one ormore virtual areas 44 in accordance with respective virtual areaapplications 46. One or more of the virtual area applications 44typically are synchronous conferencing applications that support one ormore types of communications between the client nodes 12, 14 (e.g., textchat, audio conferencing, video conferencing, application sharing, andfile sharing). The network infrastructure service environment 42typically includes one or more network infrastructure services thatcooperate with the communications applications 26, 32 in the process ofestablishing and administering network connections between the clientnodes 12, 14 and other network nodes. Among the network infrastructureservices that are included in the example of the network infrastructureservice environment 42 are an account service, a security service, anarea service, a rendezvous service, an interaction service, and acapabilities engine. The area service administers a virtual area 44 bymanaging sessions of the first and second client nodes 12, 14 in thevirtual area 44 in accordance with the virtual area application 46.Examples of the virtual area platform 18 and the virtual areaapplications 46 are described in U.S. Provisional Patent Application No.61/563,088, filed Nov. 23, 2011. Examples of an account service, asecurity service, an area service, a rendezvous service, and aninteraction service are described in U.S. patent application Ser. No.12/630,973, filed Dec.4, 2009. Examples of a capabilities engine aredescribed in U.S. Provisional Patent Application No. 61/535,910, filedSep. 16, 2011.

The network infrastructure service environment 42 maintains arelationship database 47 that contains the records 48 of interactionsbetween communicants and social network profiles 50 that are associatedwith respective communicants. Each interaction record describes thecontext of an interaction between a pair of communicants. Each socialnetwork profile 50 typically includes: identity characteristics (e.g.,name, age, gender, and geographic location information such as postalmailing address) that describe a respective communicant or a personathat is assumed by the communicant; explicit relationship informationthat is declared by the communicant; and relationship information thatis inferred from the communicant's interactions in the networkcommunication environment 10. Additional details regarding therelationship database 47 and the search and retrieval functionalitiesassociated with the relationship database as described in U.S. patentapplication Ser. No. 12/354,709, filed Jan. 15, 2009, U.S. patentapplication Ser. No. 12/418,243, filed Apr. 3, 2009, U.S. patentapplication Ser. No. 12/631,026, filed Dec. 4, 2009, and U.S. patentapplication Ser. No. 13/432,837, filed Mar. 28, 2012.

Some examples provide systems and methods for encapsulating assemblies(e.g., meetings, informal gatherings, and the like) of communicants inone or more virtual areas based on information obtained from theinteractions records 48. These examples provide a wide variety of waysin which to capture features of ongoing and completed assemblies andvisualize those features at different levels of detail. Examples ofsystems and methods of encapsulating and visualizing assemblies ofcommunicants in virtual areas are described in U.S. patent applicationSer. No. 13/432,837, filed Mar. 28, 2012.

The communications applications 26, 32, the area applications 46, andthe network infrastructure service environment 42 together provide aplatform that administers the realtime connections with network nodes inan instance of a virtual area subject to a set of constraints 43 (e.g.,capabilities and other types of permissions, rules, and preferences).Each of the virtual area applications 46 is hosted by a respective oneof the virtual areas 44 and includes a description of the respectivevirtual area 44. Communicants respectively operating the client nodes12, 14 connect to the virtual areas 44 through the virtual areacommunications applications 26, 32.

The communications applications 26, 32 typically present respectiveviews of the virtual areas 44 in accordance with data received from thenetwork infrastructure service environment 42. The communicationsapplications 26, 32 also provide respective interfaces (e.g., one ormore of a voice input interface, and audio output interface, and avisual graphical user interface) for receiving commands from thecommunicants. In visual graphical user interfaces, communicantstypically are represented in the virtual areas 44 by respective avatars(e.g., sprites). In audio output interfaces, communicants' states andactivities are described using audio signals (e.g., synthesized speech).Communicant avatars typically move about the virtual areas 44 inresponse to commands that are input by the communicants at theirrespective network nodes. In some examples, the communicationsapplications 26, 32 establish realtime data stream connections betweenthe first and second client network nodes 12, 14 and other network nodesconnected to the virtual area 44 based on the positions of thecommunicants' avatars in the virtual areas 44. In some examples, each ofthe client network nodes 12, 14 includes a respective realtime kernel ofthe type described in U.S. patent application Ser. No. 12/630,973, filedDec. 4, 2009, which supports remote configuration of stream handlers forprocessing data streams (e.g., rendering audio and video data streams)on a client network node.

A virtual area 44 may correspond to an abstract (non-geometric) virtualarea that is defined with respect to abstract coordinates, or a visualvirtual area that is defined with respect to one-, two- orthree-dimensional geometric coordinates. Abstract virtual areas may ormay not be associated with respective visualizations, whereas visualvirtual areas are associated with respective visualizations.

In some of the examples that are described herein, the virtual areas arevisual virtual areas of the type disclosed in U.S. Pat. Nos. 7,769,806and 7,844,724. These visual virtual areas include physical geometry andcollision geometry. The physical geometry describes the shape of thevirtual area. The physical geometry typically is formed from surfaces oftriangles, quadrilaterals, or polygons. Colors and textures are mappedonto the physical geometry to create a more realistic appearance for thevirtual area. Lighting effects may be painted onto the visual geometryand the texture, color, or intensity near the lighting effects may bemodified. The collision geometry describes invisible surfaces thatdetermine the ways in which objects can move in the virtual area. Thecollision geometry may coincide with the visual geometry, correspond toa simpler approximation of the visual geometry, or relate toapplication-specific requirements of a virtual area designer.

Some examples of the virtual area platform 18 enable softwareapplication designers to define the semantics of position in an abstractvirtual area (e.g., a software application or a computer data file).Through associations with respective connection rules, these positiondefinitions can be used, for example, to drive connections to virtualareas, entries into virtual areas, connections to communicants and othersources or sinks of realtime data streams, and determinations ofpresence data relating to communicants, network resources, and networkservices. Additional details regarding systems and methods of definingthe semantics of position in abstract virtual areas are described inU.S. application Ser. No. 12/631,008, which was filed on Dec. 4, 2009.

A virtual area typically includes one or more zones. A zone may be arendered spatial extent, a set of rules applied to a spatial extent, orboth. Zones may be arranged hierarchically in a virtual area, with anoutermost zone (referred to herein as the “global governance zone”)enclosing all other zones in the virtual area. Within the globalgovernance zone, there can be location zones (e.g., rooms of a virtualarea) or smaller governance zones that enclose a group of location zonesand provide regions of governance on the map. A zone definitiontypically also includes one or more channel definitions that describehow to create respective channels in the zone and specify theinformation about the channel that is published to a client network nodethat becomes present in the zone. A channel is always uniquely definedpoint-to-point and is unique to a virtual area application and a sessionbetween a client network node and the virtual area platform.

Examples of the types of rules that may be associated with a zoneinclude switching rules, governance rules, and permission rules.

Switching rules govern realtime stream connections between network nodesthat are linked to the virtual area (e.g., network nodes that areassociated with objects, such as avatars, in the virtual area). Theswitching rules typically include a description of conditions forconnecting sources and sinks of realtime data streams in terms ofpositions in the virtual area. Each switching rule typically includesattributes that define the realtime data stream type to which the ruleapplies and the location or locations in the virtual area where the ruleapplies. In some examples, each of the rules optionally may include oneor more attributes that specify a required role of the source, arequired role of the sink, a priority level of the stream, and arequested data routing topology. In some examples, if there are noexplicit switching rules defined for a particular part of the virtualarea, one or more implicit or default switching rules may apply to thatpart of the virtual area. One exemplary default switching rule is a rulethat connects every source to every compatible sink within a zone of avirtual area, subject to policy rules. Policy rules may apply globallyto all connections between the area clients or only to respectiveconnections with individual area clients. An example of a policy rule isa proximity policy rule that only allows connections of sources withcompatible sinks that are associated with respective objects that arewithin a prescribed distance (or radius) of each other in the virtualarea. The network connections between network nodes may be arranged in avariety of different data routing topologies, including a peer-to-peertopology, a mediated topology (i.e., a topology in which connectionsbetween network nodes are mediated by another network node, such as aserver network node, a client network node, or a network switch), andhybrid architectures that combine aspects of peer-to-peer and mediatedarchitectures. In some examples, the switching rules dictate how localconnection processes executing on each of the network nodes establishescommunications with the other network nodes based on the locations ofthe associated objects in the zones of the virtual area. A switchingrule also may define a direct connection between network nodes or anindirect connection through an intermediate network node (e.g., theproxy node 19 shown in FIG. 1).

Governance rules control who has access to resources (e.g., the virtualarea itself, regions with the virtual area, and objects within thevirtual area), who has access to data (e.g., data streams and othercontent) that is associated with the virtual area, what is the scope ofthat access to the data associated the virtual area (e.g., what can auser do with the data), and what are the follow-on consequences ofaccessing that data (e.g., record keeping, such as audit logs, andpayment requirements). In some examples, an entire virtual area or azone of the virtual area is associated with a “governance mesh” thatenables a software application developer to associate governance ruleswith a virtual area or a zone of a virtual area. This avoids the needfor the creation of individual permissions for every file in a virtualarea and avoids the need to deal with the complexity that potentiallycould arise when there is a need to treat the same document differentlydepending on the context.

A permission rule defines a respective capability requirement (e.g., fora respective action, behavior, or state) in terms of one or morecapabilities, attributes, and settings, which may be persistent ortransient. Examples of permission rules include: a rule that conditionsa communicant's ability to enter a target zone on the communicant havinga CanEnterZone capability for the target zone; a rule that conditionsthe ability of a grantee communicant to open a target door of a targetroom on the grantee communicant having a CanOpenDoor capability for thetarget room; and a rule that conditions the transmission of a messagedescribing the state of a particular communicant's avatar in a zone to arecipient having a CanSeeState capability for the particular communicantin the zone. A capability provides permission for a client to performsome action within the application. For example, a client may be grantedthe capability “CanEnterZone” for a specific zone within a virtual areathat has been defined with that capability requirement. The client thathas the capability can enter the zone, whereas a client without thecapability would have their RDS state change rejected when they tried toenter the zone. Examples of capabilities systems for administeringpermission rules are described in U.S. Provisional Patent ApplicationNo. 61/535,910, filed Sep. 16, 2011.

As explained above, the zones of a virtual area can be associated withrespective switching rules, each of which instructs the area service toconnect sources of a respective data stream type that are associatedwith a designated source zone with sinks of the respective realtime datastream type that are associated with a designated sink zone. Networknodes can establish respective presences in the zones of a virtual area.In some examples, network nodes associated with respective objects(e.g., avatars representing the communicants operating the networknodes) that can be moved to different locations in the virtual area, andthe network nodes are present in the zones in which the associatedobjects are located. The area service administers data streamconnections between the network nodes based on the switching rules, therespective sources and sinks associated with the network nodes, and therespective zones of the virtual area in which the objects are located.

The virtual area platform 18 enables a wide variety of highlycustomizable virtual area applications to be created. Examples of suchapplications include virtual area applications for creating a virtualoffice, a virtual personal space, a virtual art gallery, a virtualconcert hall, a virtual auditorium, a virtual conference room, and avirtual clubhouse. The virtual area platform 18 supports the creation ofnetwork connections between network nodes in the same zone of a virtualarea, as well as the creation of one-way or two-way data streamconnections between network nodes in different zones.

A virtual area typically is associated with a specific set ofcommunicants (e.g., members of the virtual area) and a plurality ofpersistent zones that define respective sub-contexts within the virtualarea. Each zone of a virtual area may support an independentcommunication session between the network nodes in the zone. Forexample, a virtual area may include zones in which audio, video, andtext chat channel connections are established only between the sourcesand sinks of network nodes that are in the same zone. In addition, oneor more attributes or other data (e.g., a name, a designated purpose,membership, or associated history of interaction in the zone) may beassociated with a virtual area zone to define a specific persistentvirtual communication context that represents a particular persistentcommunication opportunity within the virtual area for organizing acommunicant's communications with others. In addition, a virtual areamay include multiple zones that provide different contexts for thepresence states of the user and other communicants in those zones. Eachzone may be associated with one or more semantic signifiers (e.g., atextual label, a visual design or a spatial layout, or other elements)that connote a particular context from which other communicants caninfer a multi-dimensional presence state for the communicants who arepresent in the zone. In some embodiments, a spatial metaphor enrichesthe presence states within a zone with location-based cues, such asproximity of communicants to elements of the zone or proximity ofcommunicants to each other. In some examples, the visual and audiointerfaces that are provided on the client network nodes are configuredto present realtime indications of all the independent communicationsessions that are occurring in the virtual area. This allows a user tovisualize multiple concurrent independent communication interactions andthereby quickly learn who is interacting with whom and the contexts ofthose interactions (as defined by the zones in which the interactionsare occurring).

FIG. 5 shows an example of a virtual area 122 that includes a singlenon-visual global governance zone 124 in which communicants arerepresented by respective graphical representations 126, 128, 130, and132. The graphical representations 124, 126, 128, and 130 includerespective decorations or embellishments that indicate the states and/orrealtime activities of the communicants, as described in detail below.The global governance zone 124 is associated with a switching rule thatprescribes that chat streams sourced by network nodes in the globalgovernance zone 124 be published on a respective chat channel that othernetwork nodes in the global governance zone 124 can subscribe to,enabling communicants in anywhere in the virtual area 122 to communicantwith one another via text chat and to access an area-wide chat historythat the virtual area platform 18 maintains for the virtual area 122.

FIG. 6 shows an example of a virtual area 60 that is associated with atwo-dimensional visualization of a residential room that includes sixzones: a visual audio zone 64, a visual document sharing zone 66, avisual first image sharing zone 68, a visual video zone 70, a visualsecond image sharing zone 72, and a global governance zone 74 with aboundary that coincides with the outer visual boundary of the virtualarea 60. Graphical representations 61, 63, 65, and 67 of communicantsare shown in respective ones of the zones in which the communicants arepresent.

The visual zones 64-72 and the global governance zone 74 are associatedwith respective switching rules that define how data streams are sourcedand sunk in the virtual area 60. In the illustrated example, each of thevisual zones 64-72 is associated with a respective switching rule thatprescribes that audio streams sourced by network nodes in the zone bepublished on a respective voice control channel that other network nodesin the zone can subscribe to, enabling communicants in the same zone tocommunicate with each other via voice. The global governance zone 74 isassociated with a switching rule that prescribes that chat streamssourced by networks in the global governance zone 74 be published on arespective chat channel that other network nodes in the globalgovernance zone 74 can subscribe to, enabling communicants in any of thevisual zones 64-72 to communicant with one another via text chat and toaccess an area-wide chat history that the virtual area platform 18maintains for the virtual area 60. The global governance zone 124 alsois associated with a switching rule that prescribes that audio streamssourced by network nodes in the global governance zone 124 be publishedon a respective audio channel that other network nodes in the globalgovernance zone 124 can subscribe to, enabling communicants anywhere inthe virtual area 122 to communicant with one another via voice.

Each of the visual zones 64-72 contains objects and visualembellishments that suggest the intended function of the zone.

For example, the visual audio zone 64 includes a sound system object 76that is associated with one or more audio streaming services (e.g.,Pandora Radio, iTunes, Slacker Radio) that enable communicants to streamaudio content to their respective client network nodes. In this example,the visual audio zone 64 is associated with a respective switching rulethat prescribes that audio streams sourced by the sound system object 76be published on a respective audio control channel that network nodes inthe zone can subscribe to, enabling communicants in the zone to receiveand co-consume the audio streams from the one or more audio services.

The visual document sharing zone 66 includes a couch object 78, a tableobject 80 supporting a document object 82, a viewscreen object 84, and aplant embellishment 86. The couch object 78 includes seat positionswhere communicant avatars may be located and has a visualization thatconnotes activities or states of mind that typically are associated withsitting (e.g., private conversation, waiting, or reading a data fileassociated with the document object 82).

The table object 80 typically is associated with file sharingfunctionality of the virtual area platform 18 that enables communicantsto upload computer data files to server storage in association with thedocument sharing zone 66 and to download data files that are associatedwith the document sharing zone 66 from the server storage to therespective client network nodes. In the example shown in FIG. 6, thedocument object 82 is associated with a computer data file that has beenuploaded to the virtual area platform 18 in association with thedocument sharing zone 66. The document object 82 may be selected by acommunicant (e.g., by double-clicking the document object 82 with aninput device, such as a computer mouse) to initiate downloading of theassociated computer data file to the communicant's client network node.In other examples, the table object 80 is associated with one or morenews content delivery services (e.g., CNN, National Public Radio, NewYork Times, Wall Street Journal, and Wired magazine). In these examples,the visual document sharing zone 66 is associated with a respectiveswitching rule that prescribes that data sourced by the table object bepublished on a respective news content control channel that networknodes in the zone can subscribe to, enabling communicants in the zone toreceive and co-consume news content from the one or more news contentdelivery services.

The viewscreen object 84 typically is associated with applicationsharing functionality of the platform that enables communicants in thedocument sharing zone 66 to share applications (e.g., desktop publishingapplications, such as the Microsoft Word® application, and web browsingapplications, such as the Microsoft Internet Explorer® web browserapplication) operating on their respective client network nodes. In someexamples, the application sharing is achieved by peer-to-peer screensharing from a sharing client network node to one or more subscribingones of the other network nodes in the zone 80 as described in U.S.application Ser. No. 12/418,270, filed Apr. 3, 2009. In this example,the visual document sharing zone 66 is associated with a respectiveswitching rule that prescribes that application sharing data streamssourced by the viewscreen object 76 be published on a respectiveapplication sharing control channel that network nodes in the zone cansubscribe to, enabling other communicants in the zone to receive theapplication sharing streams being shared by the sharing client networknode.

The visual video zone 70 includes a video system object 88 thattypically is associated with one or more video streaming services (e.g.,the Hulu®, YouTube®, and Netflix® media streaming services) that enablecommunicants to stream video content to their respective client networknodes. The visual video zone 70 also is associated with a respectiveswitching rule that prescribes that video streams sourced by the videosystem object 88 be published on a respective video control channel thatnetwork nodes in the zone can subscribe to, enabling communicants in thezone to receive and co-consume video streams from the one or more videoservices.

Each of the first and second image sharing zones 68, 72 is associatedwith a respective image viewing object 90, 92 that typically isassociated one or more image sharing services (e.g., any of theFacebook®, Flickr®, and Picasa® image sharing services) that enablecommunicants to stream image content to their respective client networknodes. Each of the first and second image sharing zones 68, 72 also isassociated with a respective switching rule that prescribes that imagedata streams sourced by the respective image viewing object 90, 92 bepublished on a respective image control channel that network nodes inthe zone can subscribe to, enabling communicants in the zone to receiveand co-consume images from the one or more image sharing services.

In some examples, an area object represents a virtual area. In theseexamples, the virtual area platform 18 generates for each virtual area arespective area object that is linked to a variety of different types ofinformation relating to the virtual area. An area object is a datastructure that has an identity property that distinguishes it from othermeeting objects, a state property that describes the data stored in theobject, and a behavior property that describes the methods in theobject's interface by which the object can be used. The virtual areaplatform 18 may link a wide variety of information to an area object,including, for example:

-   -   time information (e.g., times when communicants joined and left        a virtual area, start and end times of meetings between        co-present communicants, times when recordings started and        stopped, and times when files are uploaded to a virtual area or        zone);    -   location information (e.g., a virtual area identifier that        uniquely identifies a virtual area, and a zone identifier that        uniquely identifies a zone of a virtual area, and other        information about the virtual location or locations in which        communicants are present or interactions between network nodes        occurred or are occurring);    -   communicant information (e.g., communicant identifiers that        uniquely identify communicants and other communicant        information);    -   information describing interactions between communicants (e.g.,        an interaction history);    -   information exchanged between communicants (e.g.: realtime data        streams, such as recorded chat data, audio data, and video data;        recorded application sharing data; recorded co-browsing data;        and data files uploaded by communicants to a virtual area or        zone); and    -   information submitted by communicants for association with        respective virtual areas, assemblies in virtual areas, or area        activity summaries (e.g., labels or titles, notes, follow-up        tasks, comments and other feedback).

In some examples, the virtual area platform 18 associates with each ofrespective ones of the area objects one or more of: a zone identifiervalue identifying the zone in which the respective communicantinteraction or other event occurred; one or more communicant identifiervalues identifying respective ones of the communicants who participatedin the respective interaction or other event; and one or more timeparameter values associated with the respective interaction or otherevent. In some examples, the virtual area platform 18 records text chatdata streams transmitted between communicants in a virtual area, andassociates the recorded text chat data with the area object for thatvirtual area. In some examples, the virtual area platform 18 records oneor more data streams (e.g., an audio data, a video data stream, and anapplication sharing data stream) that are transmitted betweencommunicants in a virtual area, and associates the one or more recordeddata streams with the area object for that virtual area. In someexamples, the virtual area platform 18 associates a file shared by acommunicant in a virtual area with the area object for that virtualarea. In some examples, the virtual area platform 18 associates with arespective one of the area objects a respective label (e.g., a name or adescriptive title) submitted by a communicant in connection with aninteraction or event (e.g., an assembly of communicants) in thecorresponding virtual area. In some examples, the virtual area platform18 associates with an area object a respective link to a note submittedin connection with an interaction or event in the associated virtualarea. In some examples, the virtual area platform 18 associates with anarea object a respective link to a description of follow-up taskssubmitted in connection with an interaction or event in thecorresponding virtual area. In some examples, the virtual area platform18 associates respective status indicators with respective ones of thearea objects, where each status indicator typically includes anindication of the state of an interaction or other event in theassociated virtual area (e.g., whether an assembly in the virtual areais in-progress or has ended).

In some examples, the virtual area platform 18 receives one or morefeedback submissions regarding a respective interaction or event inassociation with the area activity summary data for the correspondingvirtual area, and associates the one or more feedback submissions withthe area object for that virtual area. In some examples, the virtualarea platform 18 receives one or more communicant submissions on themerits of a particular interaction or event in association with the areaactivity summary data for the corresponding virtual area, determines ascore based on the one or more received communicant submissions, andassociates the score with the area object for the corresponding virtualarea.

FIG. 7A shows an example 420 of the network communications environment10 that includes an example 422 of the client network node 12 and anexample 424 of the virtual area platform 18.

The client network node 422 includes an example 426 of thecommunications application 26 and a browser component 428. Thecommunications application 426 includes a user interface component thatgenerates a graphical user interface that interfaces the user to therealtime communications and network browsing functionalities of thebrowser component. The communications application 426 establishes withother client network nodes respective peer-to-peer sessions forexchanging realtime communications (e.g., transmitting realtime audio,video, and application sharing information) and establishes with theserver node 430 a server session for exchanging control information,realtime activity information, and state information. The browsercomponent 428 provides a set of web browsing functions, includingbrowser functions, document viewing functions, and data downloadingfunctions. The browser component 428 may be integrated into thecommunications application 426 or it may be implemented by a separatebrowser component (e.g., a plug-in) that exposes an API through whichthe communications application 426 may call methods that are availablefrom the browser component, including browsing methods, documentrendering methods, and data downloading methods. In other examples, thefunctionality of the browser component 428 is provided by a standaloneweb browser application (e.g., Google Chrome™, Apple Safari®, MozillaFirefox®, and Microsoft Internet Explorer® web browser applications)that is not integrated with the communications application 426.

The virtual area platform 424 includes an example 430 of the server node40, an API (Application Programming Interface) server 432, a web server434, and a database 436.

The database 436 includes interaction records 440 and area objects 442.As explained above, each interaction record describes the context of aninteraction between a pair of communicants. In addition to identifyingthe communicants involved, the place of interaction, and start and endtimes of the interaction, an interaction record also may include linksto other information relating to the interaction, including any sharedcontent 444, chat logs 446, and recordings 448. Each area objectdescribes information relating to a particular virtual area. In someexamples, this information includes time information 450, areaattributes 452, area membership information 454, and links to otherinformation relating to interactions between communicants and assembliesof co-present communicants, including any label information 456, notes458, follow-up tasks 460, comments 462, evaluations 464, shared files444, chat logs 446, and recordings 448. In some examples, the servernode 430 manages the collection of information that is incorporated intothe interaction records 440 and the area objects 442. In these examples,the server node 430 monitors communicant interactions in a virtual areaand stores data relating to those interactions in memory. In someexamples, whenever a pair of co-present communicants is detected, theserver node 430 generates interaction records 440 from the informationstored in memory on a regular interval. Similarly, whenever an assemblyof copresent communicants is detected, the server node 430 generatesmeeting records from the information stored in memory on a regularinterval. Thus, in these examples, the interaction records 440 and thearea objects are different views on the same communicant interactiondata that is stored in memory.

The API server 432 includes one or more libraries of functions thatmanage accesses to the database 436. In some examples, the API server432 provides a REST (REpresentational State Transfer) style of web APIthrough which the server node 40 and the web server 434 are able tocreate, read, update, and delete entries in the database 436. The APIserver 432 can retrieve a particular one of the data files based onresults of a query on the interaction records 440 and area objects 442requested by a particular network node. In response to the request, theAPI server 432 typically transmits to the particular network node astorage location identifier associated with the particular data file, orit may transmit to the particular network node information derived fromone or more of the database entries identified in a result of a query onthe database 436.

The web server 434 delivers network resources in response to requestsfrom the browser component 428 executing on the client network node 422.The information resources typically are delivered in accordance with thehypertext transfer protocol (HTTP). The information resources commonlyare hypertext documents (e.g., HyperText Markup Language (HTML)documents), which may reference, for example, images, style sheets,scripts (e.g., JavaScripts), and streaming data (e.g., streaming audiodata, streaming video data, other streaming information, such asrealtime stock quotes and realtime alerts and other event information).The web server 434 hosts a Sococo Spaces application 438 that deliversuser interface content and functionality to the browser component 428 onthe client network node 422. In this process, the web server 434delivers HTML documents, style sheets, and scripts from which thebrowser component 428 creates a Sococo Spaces application user interfacefor retrieving information from and sending information to the SococoSpaces application 328. In some examples, the Sococo Spaces applicationuser interface is generated in a pane of a communications user interfacegenerated by the communications application 426.

Realtime communications between the various nodes 422, 430, 432, and 434may be carried over a realtime transport layer. In some examples,instead of receiving updates on polling or on page load, some examplesreceive updates in realtime using any of a variety of technologies(e.g., Socket IO or WebSockets). In some examples, realtime audio andvideo streams may be rendered in accordance with any of a variety ofrealtime rendering technologies (e.g., HTML5 audio or video tags, orFlash audio or video interfaces).

FIG. 7B shows an example of the Sococo Spaces application 438 that runson the web server 434. The Sococo Spaces application 438 includes a viewcomponent 470, an area services component 472, and an activity monitorcomponent 474. The view component 470 delivers user interface contentand functionality to the browser component 428 on the client networknode 422. Responsive to requests received from the browser component 428on the client network node 422, the area services component 472 managesthe creation, reading, updating, and deleting of data associated withthe area objects 442, including the area objects themselves andinformation linked to the area objects. In some examples, each of thearea objects 422 is associated with a respective unique identifier(e.g., a universally unique identifier, UUID) and the information thatis linked to an area object is represented by an endpoint in the APIserver 432 that allows the area services component 472 to perform one ormore database operations on that information (e.g., create, read,update, and delete). For example, the notes that are associated with anarea object that is created for an assembly in the Sococo-HQ virtualarea and has the UUID “meetingID_(—)001” may be retrieved by the areaservices component 472 with a request to the API server 432 thatincludes the endpoint“/space/sococo-hq/meetings/meetingID_(—)001/notes.” Through requestssent to the API server 432, the activity monitor component 474 monitorschanges to areas and their respective area objects. The activity monitorcomponent 474 informs the view component 470 of any changes, and theview component 470 sends updates to the browser component 428, whichupdates the user interface presented to the user in the graphical userinterface created by communications application.

In operation, the browser component 428 sends to the web server 434 arequest for the Sococo Spaces application user interface and applicationlogic. The browser component 438 loads the application logic and theSococo Spaces application user interface. Based on the applicationlogic, the browser component 428 generates the Sococo Spaces applicationuser interface in the graphical user interface of the communicationsapplication 426. Based on user input selecting a particularvisualization of the area object data, the browser component 428requests area object data from the API server 432 (e.g., using Socket IOor WebSockets) and then populates the Sococo Spaces application userinterface with data (e.g., area activity summary data) that it receivesfrom the API server 432. The web server 434 maintains persistentconnections with the API server 432 and the browser component 428 sothat it can receive updates about areas and their objects (e.g.,participants joining and leaving an area and new information, such aspraise, comments, notes, follow-up tasks, and other information that isattached to the area objects) from the API server 432 and deliver thoseupdates to the browser component 428 on the client network node 422.

The Sococo Spaces application 438 provides one or more user interfacesfor associating information with area objects. In some examples, theSococo Spaces application 438 delivers one or more user interfaces thatenable a user to specify one or more properties of an area object (e.g.,an area label), specify which types of area related data should berecorded by the server node 430 and associated with the area object, andenter notes, follow-up tasks, comments, praise, and other feedback.

As explained in detail below, virtual areas of the types shown in FIGS.5 and 6 may be initiated in a variety of different ways. In someexamples, the virtual area 60 (FIG. 6) may have been initiated by a userwho submitted a request to create a virtual area in connection with acontext defined by a Twitter® microblog thread involving one or morecommunicants, a link to an audio track available from a streaming musicnetwork service, or real-world location data. Initially, a virtual areamay consist of a single global governance zone that is provisioned forrealtime chat communications between communicants. As additionalcontext-defining data is associated with the virtual area as a resultof, for example, individual communicant contributions or interactionsbetween communicants, additional context-specific functionality may beadded to the single zone of the virtual area or additionalcontext-specific zones may be added to the virtual area. The virtualarea platform may add the additional functionality and zonesautomatically as new data is associated with the virtual area or a usermay explicitly add such functionality and zones by entering commandsthrough the Sococo Spaces application user interface.

As explained above, the virtual area platform 18 creates virtual areas44 based on contexts that are defined by users, the virtual areaplatform 18, or third party entities in terms of one or more of content,people, and real-world location.

FIG. 8 shows an example of a method by which the virtual area platform18 creates a virtual area based on contexts defined by content. In anetwork communications environment supporting realtime communicationsbetween respective network nodes of a user and other communicants, thevirtual area platform 18 receives a request from the user's network nodein connection with a content item (FIG. 8, block 150). Based on therequest, the virtual area platform creates a virtual area that supportsestablishment of communicant presence and is associated with the contentitem (FIG. 8, block 152). In connection with the content item, thevirtual area platform 18 administers realtime communications betweennetwork nodes operated by respective communicants who are present in thevirtual area (FIG. 8, block 154).

In some examples, the content item includes one or more of image-basedcontent (e.g., video content), conversation content (e.g., a topicthread), activity feed content describing activity of one or morecommunicants, and syndicated web feed content.

In some examples, the request includes an identifier of the user andoptionally a respective identifier of each of one or more othercommunicants. In some of these examples, the virtual area platform 18sends a list of communicants to the user's network node, and the requestincludes the user's selection of one or more communicants in the list.In the process of creating the virtual area, the virtual area platform18 designates the user and each of the other communicants as arespective member of the virtual area.

In some examples, the request includes an identifier of the contentitem, and the virtual area platform associates the content itemidentifier with the virtual area. In some examples, the virtual areaplatform 18 receives from a web browser component of the user's networknode a request that includes a uniform resource locator (URL) value thatis associated with the content item, and the virtual area platform 18associates the URL with the virtual area. In some examples, the requestincludes a topic label, and the virtual area platform associates thetopic label with the virtual area.

After the virtual area has been created, the virtual area platform mayassociate with the virtual area a variety of other informationincluding, for example, information relating to communicant interactionsin the virtual area (e.g., recorded data streams, such as text chatdata, voice data, and application sharing data, and logged event data).

In some examples, the virtual area platform determines summary data frominformation relating to communicant interactions in the virtual area,and publishes the summary data as an activity feed to which networknodes may subscribe. The virtual area platform typically incorporates alink for navigating to the virtual area in the summary data.

FIG. 9 shows an example of a graphical user interface 160 for a webbrowser component of a user's client network node that enables the userto quickly create new virtual areas based on web content or associateweb content with existing virtual areas.

The graphical user interface 160 includes an address bar 162, abookmarks bar 164 that includes a Sococo Spaces button 166, back andforward navigation buttons 168, 170, a Go button 172, a Stop button 174,and a main browser panel 176 for displaying content (e.g., a web page)rendered by the rendering engine of the web browser component. A usercan enter a URL of a network resource (e.g., web pages) into the addressbar 162 and select the Go button 172 to navigate to a particular networkresource identified by the URL. In the illustrated example, the user hasentered the URL “www.xyzimageshare.com/art” into the address bar 162 andselected the Go button 172. In response, the web browser component hasnavigated to a web page for browsing Art's image repository at thexyzimageshare.com web site. The web page includes a header section 176,a navigation bar 178, a contents section 180, notices 182, andnavigation links 184. The header section 176 includes a logo 186 and alogin section 188 that allows users to sign into their account with aweb server that is serving the web page. The navigation bar 178 containslinks (e.g., hypertext links) to other pages of a web site that includesthe web page. The contents section 180 includes a set of content slotsfor respective content-based objects. In the illustrated example, thecontent-based objects are image thumbnails that are associated withlinks (e.g., URLs) to respective images contained in Art's imagerepository. The notices 182 typically include various legal (e.g.,copyright) and other notices that the web site owner wishes to convey tousers of the web site. The navigation links 184 include links tospecific pages that are associated with the web site, including links toa search page, a link to a page that describes the terms and conditionsrelating to the use of the web site, a link to a page that provides amap of the web site, and a link to a help page.

Referring to FIG. 10, in response to user selection of the Sococo Spacesbutton 166, the web browser component sends to the virtual area platform18 a request that includes the URL for the current web page (i.e.,www.xyzimageshare.com) shown in the contents section 180. The virtualarea platform 18 determines whether the current web page is associatedwith any content items of one or more particular content types (e.g.,images, streaming media content, such as video and audio, andconversation thread content) that the virtual area platform 18 isconfigured to associate with virtual areas. If the virtual area platform18 does not detect any content items of the particular content typesassociated with the current web page, the virtual area platform 18returns a specification of a notification message that the web browsercomponent displays to inform the user that the current web page does notcontain any content items that can be associated with a virtual area. Ifthe current web page contains one or more content items of theparticular content types, the virtual area platform 18 extracts the oneor more content items from the web page, generates a proof web page 190containing a layout of graphical representations of the extractedcontent items and one or more controls, and sends the proof web page 190to the web browser component for rendering in the graphical userinterface 160.

In the illustrated example, the proof web page 190 includes a headersection 192 that includes a “Sococo Spaces” label 194, a Send to Sococobutton 196, a Cancel button 198, and a layout area 200 that shows thelayout of the graphical representations of extracted content items(i.e., images). In response to user selection of individual ones of thegraphical representations of the content items, the web browsercomponent displays respective overlays 202, 204, 206 over the selectedgraphical representations. After selecting one or more graphicalrepresentations, the user can select the Send to Sococo button 196 orthe Cancel button 198. In response to user selection of the Send toSococo button, the web browser component sends to the virtual areaplatform 18 a request to associate the content items associated with theselected graphical representations with a virtual area.

Referring to FIGS. 11A and 11B, in response to the association request,the virtual area platform 18 communicates with the web browser componentof the user's client network node. In some examples, the virtual areaplatform 18 sends to the web browser component preformatted webdocuments (e.g., a hypertext markup language (HTML) document) that thebrowser component displays as interface components (e.g., dialog boxes)in the graphical user interface 160.

FIG. 11A shows an example of a dialog box 210 that includes a Create NewArea menu entry 212 and a Send to Existing Area menu entry 214. TheCreate New Area menu entry 212 allows the user to associate the selectedcontent items with a new virtual area, whereas the Send to Existing Areamenu entry 214 allows the user to associate the selected content itemswith an existing virtual area.

In response to user selection of the Send to Existing Area menu entry214, the web browser component displays a dropdown list 216 of names ofexisting virtual areas that are associated with the user (e.g., virtualareas of which the user is a member). In response to user selection of arespective one of the existing virtual area names in the list 216 (e.g.,Saturday Morning Climbers), the web browser component generates a dialogbox 218 that allows the user to enter a description of the selectedcontent (e.g., “Sanctuary images”) and select either a Send to SaturdayMorning Climbers button 220 to send the content to the virtual areaplatform 18 for association with the existing Saturday Morning Climbersvirtual area or a Cancel button 222 to cancel the process. In responseto user selection of the Send to Saturday Morning Climbers button 220,the web browser component transmits the content description and links(e.g., URLs) for the selected content items to the virtual area platform18. The virtual area platform 18 associates the selected content itemswith the designated virtual area and sends to the web browser componenta notification 224 indicating that the selected content has beenassociated with the designated virtual area and a control 226 fornavigating the user to the designated virtual area.

FIG. 11B shows an example of a dialog box 230 that the web browsercomponent displays in response to user selection of the Create New Areamenu entry 212 in the dialog box 210. The dialog box 230 allows the userto set certain attributes of the new virtual area that will be wrappedaround the selected content items, including an Area Name (e.g., “BeachCombers”) for the virtual area and an iconographic representation of thevirtual area. The user also can selectively “star” the virtual area toindicate the virtual area platform 18 should treat the virtual area as afavorite area. The dialog box lists the current members of the new area,which automatically includes the user (i.e., “Art”) who initiated thevirtual area creation process. The dialog box 230 also includes anInvite Members box 232 that allows the user to designate new members whowill be invited to the new virtual area and a Message box 234 thatallows the user to specify a message (e.g., “Please join me in BeachCombers”) that will be included with each invitation. In the illustratedexample, the user has designated Beth and Carl as invitees to the newvirtual area. The dialog box 230 includes a Create Space button 236 toinitiate the virtual area creation process and a Cancel button 238 tocancel the process.

In response to user selection of the Create Space button 236, the webbrowser component transmits the new area attribute and inviteeinformation to the virtual area platform 18. The virtual area platform18 generates a new virtual area that is associated with the attributeand invitee information and sends to the web browser component a dialogbox 240 that allows the user to enter a description of the selectedcontent (e.g., “Sanctuary images”). The dialog box 240 also allows theuser to select either a Send to Beach Combers button 242 to send thecontent to the virtual area platform 18 for association with the newBeach Combers virtual area or a Cancel button 244 to cancel the process.In response to user selection of the Send to Beach Combers button 242,the web browser component transmits the content description and links(e.g., URLs) for the selected content items to the virtual area platform18. The virtual area platform 18 associates the selected content itemswith the designated virtual area and returns a specification of anotification message 246 that the web browser component displays toinform the user that the selected content has been associated with thedesignated virtual area. The notification message 246 also includes acontrol 248 for navigating the user to the designated virtual area.

FIG. 12 shows an example of a method by which the virtual area platform18 creates a virtual area based on contexts defined by people. In anetwork communications environment supporting realtime communicationsbetween respective network nodes of a user and other communicants, thevirtual area platform 18 sends a list of communicants to the user'snetwork node (FIG. 12, block 250). The virtual area platform 18 receivesfrom the user's network node a request that includes the user'sselection of one or more communicants in the list (FIG. 12, block 252).Based on the request, the virtual area platform 18 creates a virtualarea that supports establishment of communicant presence and isassociated with the user and the one or more communicants in the user'sselection. In this process, the virtual area platform 18 designates theuser and each of the one or more communicants in the user's selection asa respective member of the virtual area (FIG. 12, block 254). Thevirtual area platform 18 administers realtime communications betweennetwork nodes operated by respective communicants who are present in thevirtual area (FIG. 12, block 256).

In some examples, the request includes a message. The virtual areaplatform sends the message to each of the one or more communicants inthe user's selection. In the process of creating the virtual area, thevirtual area platform 18 typically associates the message with thevirtual area. In some examples, each communication includes a link(e.g., a hyperlink, such as a URL) for accessing the virtual area.

In some examples, the virtual area platform 18 sends the user a list ofthe user's contacts. A “contact” of a user is a communicant who isconnected to the user either by an explicit social network tie that isdeclared by at least one of the user and the communicant (and optionallyconfirmed by the other) or by a social network tie that is inferred frominteractions between the user and the communicant. In some embodiments,the virtual area platform 18 promotes communicant interactions based onexplicit attribute values that are declared by communicants and inferredattribute values that are derived from statistical analyses of theresults of queries on the relationship database 47. Each relationshiptype attribute value typically specifies a type of a social network tie.Exemplary relationship types include a kinship type (e.g., father-of,cousin-of), an affective type (e.g., respects, likes), a cognitive type(e.g., knows, friends-with, acquaintance-of), and social role type(e.g., teacher-of, works-with). Examples of embodiments of methods ofinferring such attribute values are described in section IV ofco-pending U.S. patent application Ser. No. 12/631,026, filed Dec. 4,2009.

FIG. 13 shows an example of a graphical user interface 270 that depictsthe realtime availabilities and activities of some or all of thecontacts of a user (“Art” in this example) across differentcommunication contexts. The graphical user interface 270 is generated ona display of the client network node that Art is using to connect to thevirtual area platform 18. The graphical user interface 270 shows Art'scommunicants segmented into two virtual area sections 272, 274 and acontacts section 276. The virtual area sections 272, 274 correspond tothe virtual areas of which Art is a member and in which at least one ofArt and Art's contacts is present, whereas the contacts section 276contains all or a selected portion of Art's contacts that are notrepresented in any of the virtual area sections (e.g., Art's contactswho are not shown in any of the first and second virtual area sections272, 274 because they either are not members of or not present in any ofArea 1 and Area 2). Each of the virtual area sections 272, 274 includesa respective header bar 278, 280 that includes a descriptive label(e.g., “Area 1” and “Area 2”) that is associated with the virtual area(e.g., the name of the virtual area and optionally other informationrelating to the virtual area, such as an announcement). Each of thesections 272, 274, 278 also includes a respective toggle control thatcan be toggled to selectively collapse and expand the associated section272, 274, 278. In the illustrated example, each of the sections 272,274, 278 is expanded.

Within each virtual area section 272, 274, the communicants who arepresent in the respective virtual area are grouped as follows: thecommunicants in the user's current zone of presence (i.e., Image_Modulein this example) are displayed in a capsule 282 at the top of thesection; next communicants who are co-presence with other communicantsin respective zones of the respective virtual area are displayed inrespective zones of co-presence capsules 284, 286; the communicants whoare alone in respective zones of the virtual area are displayed in arespective “Other Rooms” capsule 288; and the communicant members of anarea who currently are not present in the area are displayed inrespective “Not Present” capsules 290, 292. The zones of co-presencefiltering criteria identify those communicants who are co-present inrespective zones of a virtual area. Thus, for each virtual area, thecommunicants in each group of two or more co-present communicants in thesame zone of the virtual area are listed in a separate, selectivelyexpandable and collapsible zone of co-presence capsule in a respectivevirtual area section of the graphical user interface 270. The depictionof the zones of co-presence enables Art to readily visualize all of themulti-communicant interactions (e.g., conversations) that are occurringacross all of the communication contexts that are defined by the virtualareas of which Art is a member. In this way, Art can determine whetheror not there are any ongoing multi-communicant interactions that hewould like to join. In some examples, each of the capsules 282-286 forthe current zone of presence and the zones of the co-presences isassociated with a respective descriptive user navigable link (e.g., aURI link that includes the name of the zone and other information, suchas a label that describes the topic of a meeting currently taking placein the zone).

Within the Contacts section 276, the communicants are filtered intogroups according to different respective filtering criteria. Thesegroups include a Frequent contacts group 294 in which Art's contacts aresorted by the frequency of their respective interactions with Art, aRecent contacts group 296 in which Art's contacts are sorted by therecentness of their respective interactions with Art, an Online contactsgroup 298 that lists all of Art's contacts who currently are online(e.g., connected to the virtual area platform 18), and an Offlinecontacts group 300 that lists all of Art's contacts who currently areoffline (e.g., disconnected from the virtual area platform 18).

In the graphical user interface 270, each communicant is representedgraphically by a respective circular sprite (or avatar) that isassociated with a respective user name of the communicant (i.e., “Art,”“Beth,” “Carl,” “Dan,” “Ed,” “Fran,” “Helen,” “Jim,” “Kim,” “Frank,” and“Sue”) and an optional status line that includes additional informationabout the communicant, such as location of presence (e.g., a virtualarea or a zone of a virtual area); availability (e.g., busy, idle), astatus message (e.g., “Out of the office next Wednesday”), and the nameof the client node from which the communicant is operating (e.g.,“workstation 1” or “mobile phone”).

The virtual area platform 18 monitors the activities on variouscommunication channels over which the respective communicants areconfigured to communicate in the virtual areas and generates state datathat indicate state information about the communicants and real-timedata streams (RDS) that indicate the current realtime activities of thecommunicants. These states and activities are represented in thegraphical user interface 270 by visual cues that are depicted inassociation with the graphical representations of the communicants. Forexample, the “on” or “off” state of a communicant's local speakerchannel is depicted by the presence or absence of a headphones graphic302 on the communicant's sprite. When a communicant's speakers are on,the headphones graphic 302 is present (see sprites Carl, Ed, and Dan)and, when a communicant's speakers are off, the headphones graphic 302is absent. The “on” or “off” state of the communicant's microphone isdepicted by the presence or absence of a microphone graphic 304 on thecommunicant's sprite. When a communicant's microphone is on, themicrophone graphic 304 is present (see sprites Ed and Dan); and, when acommunicant's microphone is off, the microphone graphic 304 is absent.The headphones graphic 302 and the microphone graphic 304 provide visualcues of the on or off states of the communicant's sound playback andmicrophone devices. In addition, the current activity state of acommunicant's microphone channel is indicated by a dynamic visualizationthat lightens and darkens the communicant's avatar in realtime toreflect the presence or absence of audio data on the microphone channel.Thus, whether or not their local speakers are turned on, communicantscan determine when another communicant is speaking by the “blinking” ofthe coloration of that communicant's avatar. The activity state of acommunicant's text chat channel is depicted by the presence or absenceof a hand graphic 306 adjacent the communicant's sprite (see spriteBeth). Thus, when a communicant is transmitting text chat data toanother network node the hand graphic 306 is present, and when acommunicant is not transmitting text chat data the hand graphic 306 isnot present. In some examples, the text chat RDS data reflects whenkeyboard keys are depressed such that the visualization of thecommunicant's text channel appears as a flashing on and off of the handgraphic 306. In addition, the avatars of communicants who are viewing ashared application in connection with viewscreen objects are depictedwith a pair of “eyes” 308 to indicate that the represented communicantsare viewing the content being shared in connection with the viewscreenprops (see, e.g., the avatars of Art, Ed, and Dan).

Members of a virtual area are able to receive the state and RDSinformation for the communicants in the user's virtual areas ofmembership whether or not the user is present in the virtual area. Forexample, the graphical user interface 270 that is presented to Art showsvisual cues indicating the states and communication channel activitiesof the communicants who are present in the Area virtual area (where Artis present) and the states and communication channel activities of thecommunicants who are present in other areas of which Art is a member butnot currently present (e.g., the Area 2 virtual area).

The graphical user interface 270 includes a people interaction toolbar310 that includes a Chat button 312, a Get button 314, a Call button316, and a Sococo Spaces button 318 that are associated with respectiveinteraction functionalities of the platform that operate with respect toone or more communicants associated with user-selected ones of theavatars in the graphical user interface 270.

Selection of the Chat button 312 in connection with a user-selectedavatar in the graphical user interface 270 opens a chat panel thatenables the user to open a private peer-to-peer zone for text chattingwith the communicant corresponding to a selected one of the avatars.Selection of the Get button 358 in connection with one or moreuser-selected avatars in the graphical user interface 270 opens aninvite window that enables the user to invite the communicantscorresponding to the one or more selected avatars to a virtual arealocation (e.g., an area application or zone within that areaapplication) designated by the user. Additional details regardingembodiments of the methods and functions invoked by the Chat button 360and the Get button 358 are described in U.S. patent application Ser. No.12/354,709, filed Jan. 15, 2009, and U.S. patent application Ser. No.13/209,812, filed Aug. 15, 2011.

Selection of the Call button 316 opens a call window that enables theuser to place a telephone call to one or more communicants, as describedin U.S. patent application Ser. No. 13/165,729, filed Jun. 21, 2011. Thecalled communicants are represented in the graphical user interface 270by avatars that are decorated with graphical representations of atelephone.

Selection of the Sococo Spaces button 318 enables the user to create anew virtual area based on a context defined in terms of one or more ofthe user's contacts selected in the graphical user interface. In theillustrated example, the user has selected the avatars of Beth, Fran,Dan, Frank, and Sue, as indicated by the overlays positioned over theirrespective avatars. Upon selection of the Sococo Spaces button 318, theuser's client network node sends to the virtual area platform 18 arequest that includes profile information for the selected contacts. Thevirtual area platform 18 sends to the user's client network node adialog box 320 that allows the user to set certain attributes of the newvirtual area that will be wrapped around the selected contacts,including an Area Name (e.g., “Going Out Tonight”) for the virtual areaand an iconographic representation of the virtual area. The dialog box320 also allowed the user to “star” the virtual area to designate thevirtual area as a favorite area. The dialog box 320 lists the selectedcontacts as “invitees” who will be invited to the new virtual area. Thedialog box 320 includes a Message box 322 that allows the user tospecify a message (e.g., “Join me in Sococo to discuss where we shouldgo out tonight. Perhaps Buck's. Click this link.”) that will be sent tothe selected invitees. The dialog box 320 also includes a Send Message &Create Space button 324 for initiating the virtual area creation processand a Cancel button 326 to cancel the process.

In response to user selection of the Send Message & Create Space button324, the user's client network node transmits the new area attribute tothe virtual area platform 18. The virtual area platform 18 generates anew virtual area that is associated with the selected contact inviteesand the message entered in the Message box 322. The virtual areaplatform 18 returns a specification of a notification 328 that theuser's network node displays to inform the user that messages have beensent to the selected invitees and that a virtual area has been createdfor the user and the selected contacts. The notification includes acontrol 330 for navigating the user to the newly created virtual area.

FIG. 14 shows an example of a method by which the virtual area platform18 creates a virtual area based on contexts defined by real-worldlocation. In a network communications environment supporting realtimecommunications between respective network nodes of a user and othercommunicants, the virtual area platform 18 creates a virtual area thatsupports establishment of communicant presence and is associated with areal-world location (FIG. 14, block 340). The virtual area platform 18determines communicants who are present in the real-world location (FIG.14, block 342). The virtual area platform 18 invites respective ones ofthe determined communicants to the virtual area (FIG. 14, block 344).The virtual area platform 18 administers realtime communications betweennetwork nodes operated by respective one of the invited communicants whoare co-present in the virtual area (FIG. 14, block 346).

In some examples, the virtual area platform 18 creates the virtual areabased on a request received from a user's network node in connectionwith real-world location. In some examples, the location data describesa real-world location of the user's network node (e.g., real-worldcoordinates generated by a Global Positioning System (GPS) service, aGlobal System for Mobile Communications (GSM) service, or otherlocation-based service, associated with the user's network node) or someother real-world location. The real-world location that is associatedwith the virtual area may be fixed or may change over time. An exampleof a fixed real-world location that might be associated with the virtualarea is the location of a stationary object, such as a building or otherphysical structure (e.g., one or more structures associated with acommercial establishment). An example of changing real-world locationsthat might be associated with the virtual area is the current real-worldlocation of the user.

In some examples, the virtual area platform 18 automatically invites allof the communicants who are determined to be present in the real-worldlocation to the virtual area. In other examples, the virtual areaplatform 18 presents a list of the determined communicants to the userand allows the user to select which of the determined communicants toinvite to the virtual area.

In some examples, the virtual area platform 18 creates the virtual areabased on a determination that the real-world coordinates of one or moreof the communicants satisfy a location-based predicate.

Referring to FIG. 15A, in some examples, the virtual area platform 18automatically creates a virtual area in response to a determination thatthe real-world locations of two or more communicants satisfy a proximitypredicate (e.g., the communicants are within a particular distance fromone another) and an optional time predicate (e.g., the communicants mustsatisfy the proximity predicated for at least a threshold length oftime). In the illustrated example, the virtual area platform 18automatically creates a virtual area 350 for communicants operatingrespective network nodes 352 whose locations can be circumscribed by avirtual circular boundary 354 with a diameter of at most a specifiedthreshold diameter (e.g., three meters). In other examples, the virtualarea platform 18 automatically creates a virtual area for communicantsin response to a determination that their respective network nodes arelocated within a specified distance of a target one of the network nodes352.

Referring to FIG. 15B, in some examples, the virtual area platform 18automatically creates a virtual area in response to a determination thata communicant's network node is located within a designated real-worldspace. In the illustrated example, the virtual area platform 18automatically creates a virtual area 360 for communicants who areoperating respective network nodes (e.g., mobile phones 362, 363) whoselocations are within a specified real-world coordinate boundary 364within a building 365, but does not create such a virtual area forcommunicants whose network nodes (e.g., mobile phone 366) are locatedoutside the real-world coordinate boundary 364. In some examples, thevirtual area platform 18 conditions the creation of the virtual area 360on there being at least two co-present communicants within thereal-world coordinate boundary 364 (e.g., communicants who are locatedwithin the real-world coordinate boundary) and optionally for a periodof at least a threshold length of time (e.g., one minute).

FIG. 16 shows an exemplary graphical user interface 500 that isgenerated by an example of the communications application 26 in a window502 on a display of the client network node from which a user of theclient application (“Art” in this example) is operating. The graphicaluser interface 500 includes a people panel 504, a viewer panel 506, achat panel 507, an audio interaction toolbar 508, and a set of panelview controls 510. The panel view controls 510 include a people panelbutton 512 for opening and closing the people panel 504, a Chat panelbutton 514 for opening and closing the chat panel 507, and a viewerpanel button 518 for opening and closing the viewer panel 506.

The people panel 504 contains an example of the graphical user interface270 (see FIG. 13), which shows the realtime availabilities andactivities of some or all of Art's contacts across differentcommunication contexts.

As explained in detail below, the viewer panel 506 presents differentvisual information depending on the viewer panel controls that have beenselected by the user.

The chat panel 507 shows a chat interface for a persistent virtual chatarea for interactions occurring in connection with a respective virtualarea. The chat interface of the chat panel 507 includes a chat log area509, a text box 511, and a Send button 513. The user may enter textmessages in the text box 511 and transmit the text messages to the othercommunicants who are in Area 1 by selecting the Send button 513. In theexample shown in FIG. 16, Art activated the chat panel button 507 at thetime he was present in the Image_Module1 zone of the Area 1 virtual area(see virtual area 60 in FIG. 5); therefore, the chat log area 509 showsthe persistent virtual chat history for text chat interactions occurringin connection with Area 1. The chat log area 509 also displays a log ofevents that are associated with Area 1. An exemplary set of events thatmay be displayed in the chat log area 242 include: text messages thatthe user has exchanged with other communicants in the zone; changes inthe presence status of communicants in the zone; changes in the speakerand microphone settings of the communicants in the zone; and the statusof the props (discussed below), including references to any applicationsand data files that are shared in connection with the props. In theillustrated example, the events are labeled by the communicant's namefollowed by content associated with the event (e.g., a text message) ora description of the event.

The audio interaction toolbar 508 includes a headphone control 520 thatenables Art to toggle on and off the local speakers of the clientnetwork node, and a microphone control 522 that enables Art to toggle onand off the local microphone of the client network node.

The graphical user interface 500 also includes a Phone button 524, arespective Viewscreen button 526 for each viewscreen in the user'scurrent zone of presence, a Map button 528, and an Activity Feed (AF)button 530. The Phone button 524 is associated with telephony relatedfunctionality of the platform that enables a user of a Public SwitchedTelephone Network (PSTN) terminal device to participate in virtual areabased communications (e.g., by the PSTN terminal device user callinginto a zone of the virtual area or by a user of the communicationsapplication 26 to call out to the PSTN terminal device user), asdescribed in U.S. patent application Ser. No. 13/165,729, filed Jun. 21,2011. The Viewscreen button 526 sets the viewer panel 506 to display thecontent the content being shared in connection with the correspondingviewscreen object 84 in the current zone of presence or, if no contentis being shared in connection with the current viewscreen object 84, todisplay a Share button that allows the user to initiate a screen sharingsession in connection with the selected viewscreen object. The Mapbutton 528 sets the view presented in the viewer panel 506 to a map viewof the virtual area in which the user either is present or lurking. TheActivity Feed button 530 opens an Activity Feed panel for visualizingpublished activities and other events relating to virtual areas ofinterest to the user.

In the example shown in FIG. 16, the Map button 528 is selected, whichplaces the viewer panel 506 into the map view mode. Consequently, theviewer panel 506 shows a spatial visualization of the area or area/zonein which the user currently is present; namely, the Image_Module1 zoneof Area 1 as indicated in the location bar 532 by the address“Area1/Image_Module1.” The user can move to a different zone of thevirtual area either by selecting the graphical representation of thezone in the spatial representation shown in the viewer panel 506.

In some examples, the virtual area platform 18 automatically associateszones with application-specific rendering modules (also referred to asplugins) that are needed to render content associated with the zones ofthe virtual area. Examples of such rendering modules include viewscreenmodules, audio player modules, video player modules, and image modules.A viewscreen module provides functionality and an interface for webbrowser and application sharing. An audio player module providesfunctionality and an interface for audio playback. A video player moduleprovides functionality and an interface for video playback. An imagemodule provides functionality and an interface for image playback. Eachof the rendering modules is associated with a respectivecontext-dependent button that automatically is presented in theinterface when the user's current state allows the user to interact withparticular content.

In the example shown in FIG. 16, the user is present in theImage_Module1 zone of Area 1, which is associated with image content(e.g., images that have been associated with Area 1, or images availablefrom an image sourcing web service, such as an image sharing webservice, that have been associated with Area 1). Thus, when the user ispresent in the Image_Module1 zone, the graphical user interface 500includes an image module button 534 that is associated withfunctionality and an interface for image playback.

Referring to FIG. 17, when the user selects the image module button 534,the viewer panel 506 switches from the map view of Area 1 to an imageplayback interface 536 that is generated by the image playback moduledesignated for handling image playback by the virtual area platform 18.In this example, the image playback interface 536 includes a displayarea 538 that has four display screens 540, 542, 544, 546 for displayingimages that have been associated with Area 1 and are listed in an imagelist 548. The user can drag and drop images from the image list 548 torespective ones of the display screens 540-546, each of which may beassociated with a respective category or group label (e.g., a favoritesgroup or other category). The user can select one of the display screens540-546 (e.g., the highlighted display screen 540) and scroll throughimages allocated to the selected display screen either as an automatedslide show or manually using a set of playback controls 550. The usercan set aside images for a particular purpose by dragging images fromthe image list 548 or the display screens 540-546 and dropping them ontoa table object 552, where they are represented graphically by respectiveimage objects 554. The image playback interface 536 includes a Praisecontrol 556 for submitting an indication of praise (or like) for aselected image, a Comment control 558 for submitting a comment inconnection with a selected image, an Edit control 560 for accessingtools for editing a selected image, and a Delete control 562 fordeleting a selected image.

In the example shown in FIG. 18, the user has moved to the Audio_Modulezone of the Area 1 virtual area, which is associated with audio content(e.g., musical tracks and other audio files that members have associatedwith Area 1, or audio tracks available from an image sourcing webservices, such as a music sharing web service, that have been associatedwith Area 1). When the user is present in the Audio_Module zone, thegraphical user interface 500 includes an audio module button 570 that isassociated with functionality and an interface for audio playback. Whenthe user selects the audio module button 570, the viewer panel 506switches from the map view of Area 1 to an audio playback interface 572that is generated by the audio playback module designated for handlingaudio playback by the virtual area platform 18. In this example, theaudio playback interface 572 includes the sound system object 76 andassociated audio controls 576 for controlling playback of audio trackslisted in a tracks list 578 or playlists listed in a playlists list 579.The user can playback the tracks or playlists in the order in which theyare listed in the tracks list 578 or playlists list 579 or drag and dropindividual audio tracks or playlists from the tracks list 578 orplaylists list 579 to the sound system object 76 for immediate playback.The image playback interface 572 includes a Praise control 580 forsubmitting an indication of praise (or like) for a selected image, aComment control 582 for submitting a comment in connection with aselected image, an Edit control 584 for accessing tools for editing aselected audio track, and a Delete control 590 for deleting a selectedaudio track.

In the example shown in FIG. 19, the user has moved to the documentsharing zone of the Area 1 virtual area, which is associated withdocument content (e.g., web pages, desktop publishing documents, andother documents that have been associated with Area 1). When the user ispresent in the document sharing zone, the graphical user interface 500includes a viewscreen button 592 that is associated with applicationsharing functionality and an interface for sharing documents amongco-present communicants in Area 1. When the user selects the viewscreenbutton 592, the viewer panel 506 switches from the map view of Area 1 toa document browsing interface 594 that is generated by a moduledesignated for handling application sharing by the virtual area platform18. The document browsing interface 592 includes elements of the webbrowser interface 160 sown in FIG. 8, including the address bar 162, thebookmarks bar 164, the Sococo Spaces button 166, the back and forwardnavigation buttons 168, 170, the Go button 172, the Stop button 174, andthe main browser panel 176. The document browsing interface additionallyincludes a Share button 600 that initiates a screen share of thecontents of the display area of the viewer panel 506 in connection withthe viewscreen object 84 in Area 1. These contents include, for example,renderings of any information that is received by the browser componentin connection with the network resource identified in the location bar162, and a document or application that is being shared by the user inconnection with a viewscreen object in the user's current location ofpresence (e.g., the viewscreen object 84 in the document sharing zone ofArea 1).

The application sharing functionality is invoked by activating theviewscreen object 84 (e.g., by single-clicking the viewscreen objectwith an input device). In some embodiments, the platform provides visualcues that indicate whether or not a communicant is sharing anapplication over an application sharing channel. In response to acommunicant's selection of the viewscreen object 84, the communicant'ssprite automatically is moved to a position in the graphicalrepresentation of the virtual area that is adjacent the viewscreenobject 84. The position of a communicant's sprite adjacent theviewscreen object 84 indicates that the communicant currently is sharingor is about to share an application with the other communicants in thevirtual area. In addition, the avatar of each communicant who is viewinga shared application (including the sharing communicant) is depictedwith a pair of “eyes” to indicate that the represented communicants areviewing the content being shared in connection with the viewscreenobjects. The graphical depiction of viewscreen object 84 is changeddepending on whether or not an active application sharing session isoccurring. For example, the depicted color of the viewscreen object 84may change from a brighter color during an active application sharingsession to a darker color when there is no application sharing takingplace.

The viewscreen object 84 may be associated with links 602 to one or moredocuments or document serving network resources, such as a networkaccessible service (i.e., SugarCRM, Netsuite, and Unfuddle), that havebeen associated with the virtual area. Each of the network accessibleservices is associated with a respective URI link (i.e.,http://www.sugarcrm.com, http://www.netsuite.com, andhttp://www.unfuddle.com). The documents and services that are associatedwith the viewscreen object 84 are accessed by the browser components onthe client network nodes of the communicants who currently are screensharing in connection with the viewscreen object 84. In this regard, thecontents of network resources shared by the communicant currently incharge of running viewscreen objects (i.e., the moderators who might be,e.g., the communicant who initially activated the viewscreen object 84)automatically are captured from these communicants' client network nodeand sent to the other communicants who subscribed to the applicationsharing channel by activating the viewscreen object 84. In this way, allof the communicants in the document sharing zone 66 can collaboratetogether in the context of the network resource interactions of themoderator in connection with the linked services. In these examples, allthe communicants who activate the same viewscreen object will see thesame network resource contents via screen sharing.

The virtual area platform 18 generates summaries of activities and otherevents in virtual areas and publishes those summaries to othercommunicants in realtime so that the other communicants readily candiscern what's happening in different potentially relevant contexts anddecide whether or not to join or otherwise participate in thosecontexts. The published summaries may be available to all communicants(i.e., publicly available), only those communicants who are sociallyrelated to the activity participants or the members of the virtual area(e.g., friends or friends-of-friends), or only members of the virtualarea (i.e., private).

FIG. 20 shows an example of a method by which the virtual area platform18 administers the creation and publication of area activity summaries.In accordance with this method, the virtual area platform 18 administersrealtime communications between network nodes of communicants in virtualareas (FIG. 19, block 610). For each of respective ones of the virtualareas, the virtual area platform 18 links information relating tocommunicant activity involving the virtual area to a respective areaobject representing the virtual area (FIG. 19, block 612). The virtualarea platform 18 determines respective area activity summary data basedon the information linked to selected ones of the area objects (FIG. 19,block 614). The virtual area platform 18 transmits the determined areaactivity summary data to a network node for display (FIG. 19, block616).

The virtual area platform 18 may determine the area activity summarydata for the selected areas in different ways. In some examples, thevirtual area platform 18 extracts area activity summary data based onqueries on the area objects representing the virtual areas. Thesequeries may be predefined or custom queries received from communicants.In some examples, the virtual area platform 18 uses a set of predefinedqueries to determine area activity summary data at different respectivelevels of detail (e.g., summary label and area activity summary statusonly; summary label, summary status, and communicant list; and summarylabel, summary status, communicant list, and notes with the interactionor event that is the subject of the summary).

The published area activity summaries may be available to allcommunicants, only those communicants who are socially related to theactivity participants or the members of the respective virtual areas(e.g., friends or friends-of-friends), or only members of the respectivevirtual areas. In some examples, the process of selecting the areaactivity summaries to publish involves querying the target communicants'respective social graphs. In other examples, the virtual area platform18 publishes respective sets of area activity summaries to clientnetwork nodes based on search queries received from a client networknodes. The virtual area platform 18 may select all or a filtered set ofthe area activity summaries to transmit/publish to a client networknode. The filter criteria may be, for example, one or more conditions onany type of area object attribute including, for example, a timeattribute value, a virtual location attribute value, a communicantattribute value, and a data type attribute value. In some examples, thevirtual area platform 18 ranks area activity summaries, and selectshighest ranked ones of the ranked area activity summaries. In someexamples, for each of the area activity summaries, the ranking is basedon at least one of: a count of communicants involved in the respectivearea activity summary; a count of follow-up tasks associated with therespective area activity summary; and one or more approval ratingsassociated with the respective area activity summary.

In some examples, the virtual area platform 18 determines a time-basedordering of the area activity summary data, from a starting areaactivity summary to an ending area activity summary. The starting areaactivity summary may be the first area activity summary in a time-basedordering of the area activity summaries and the ending area activitysummary may be the last area activity summary in the time-basedordering. The area activity summaries may be ordered chronologically orreverse chronologically according to a time attribute value (e.g., starttime or end time) associated with the area activity summary. The virtualarea platform 18 typically transmits to one or more of the network nodesa respective specification (e.g., an XML specification) of a view fordisplaying the area activity summary data in accordance with thetime-based ordering.

In some examples, the virtual area platform 18 transmits an activityview of the respective area objects to the network node, where theactivity view shows a time-based listing of respective area activitysummaries for all concurrent and consecutive ones of the area activitiesfrom a starting one of the area activities to an ending one of the areaactivities. In some examples, the virtual area platform 18 transmits atimeline view of the respective area activity summaries to the networknode, where the timeline view shows a time-based listing of respectivearea activity summaries for highest ranked ones of the area activities.

The virtual area platform 18 also typically transmits updates to therequesting ones of the client nodes to reflect changes to existing areaactivities and new area activities.

In some examples, the virtual area platform 19 sends to each of one ormore of the communicants who were involved in a particular one of thearea activities a respective follow-up message comprising informationrelating to the particular area activity. In some examples, therespective message includes one or more of: a summary of the particulararea activity; a note associated with the particular area activity; afollow-up task associated with the particular area activity; and anindication of submitted evaluations of the particular area activity.

FIG. 21 shows an example of a method by which a client network nodeinteracts with the server network node 40 in the process of presenting avisualization of one or more ongoing or completed area activities. Inaccordance with this method, the client network node establishes asession with a virtual area platform that administers realtimecommunications between network nodes of communicants in a virtual area(FIG. 21, block 618). The client network node transmits to the virtualarea platform a request for a visualization of area activity (FIG. 21,block 620). In connection with the request, the client network nodereceives from the virtual area platform area activity summariesdescribing area activity in virtual areas associated with the user (FIG.21, block 622). The client network node presents a visualization of thearea activity summaries on a display (FIG. 21, block 624).

In some examples, the client network node receives area activitysummaries of virtual areas of which the user is a member. In otherexamples, the client network node receives area activity summaries ofvirtual areas that are associated with the user through the user'ssocial ties with the activity participants or the members of therespective virtual areas (e.g., friends or friends-of-friends). In someexamples, the client network node receives publicly available areaactivity summaries that are associated with the user through the user'smembership in the virtual area platform service.

In some examples, the client network node presents an activity view ofthe received area activity summaries. In some of these examples, theactivity view shows a time-based listing of area activity summaries ofall concurrent and consecutive area activities from a starting one ofthe area activities to an ending one of the area activities. Thestarting and ending area activities may correspond to the first and lastarea activities that satisfy certain filtering criteria (e.g., one ormore time, virtual location, and communicant parameter values).

In some examples, the client network node presents a timeline view ofthe received area activity summaries. In some of these examples, thetimeline view shows a time-based listing of area activity summaries ofhighest ranked ones of the area activities of copresent communicants.

The virtual area platform 18 may rank the area activities in a varietyof different ways. In some examples, the virtual area platform 18 ranksarea activities based on a score derived from a weighted combination ofone or more attributes of the area activities. Examples of suchattributes include:

-   -   the number of participants in the activities (e.g., activities        with a greater number of participants may be scored higher than        activities with fewer participants);    -   the roles of the activity participants (e.g., activities with        participants with particular roles, such as chief executive        office, dungeon master, or movie critic may be scored higher        than other activities);    -   the duration of the activity (e.g., longer activities may be        scored higher than shorter activities);    -   the interaction level during the activity (e.g., activities with        higher amounts of audio, video, screen share, text chat, and        file share interaction may be scored higher than activities with        lower amounts of such interaction);    -   the amount of data associated with the activity (e.g.,        activities with more notes and follow-up tasks may be scored        higher than assemblies with fewer notes and follow-up tasks);    -   the amount of feedback received in connection with the activity        (e.g., activities that receive more comments or praise may be        scored higher than activities that receive less feedback);    -   the quality of feedback received in connection with the activity        (e.g., activities that receive more praise or less negative        feedback may be scored higher than activities that receive less        praise or more negative feedback); and    -   the association of certain keywords with activities (e.g.,        activities associated with keywords—e.g., “important”,        “critical”, and the like—in the label, notes, or chat history        may be scored higher than activities that are not associated        with such keywords).

In some examples, for each of respective ones of the area activitysummaries, the client network node provides a respective control forsubmitting feedback regarding the respective area activity. Responsiveto receipt of feedback in connection with a respective one of thecontrols associated with a given one of the area activity summaries, theclient network node submits to the API server 432 a message thatincludes the feedback received in connection with the given areaactivity. In some of these examples, the feedback may be a comment or anopinion (e.g., an indication of “praise” or “like”) on the merits of therespective assembly.

In some examples, the client network node presents in connection witheach of respective ones of the area activity summaries at least one of:a respective area activity label; a respective area activity statusindication; and a respective link to data associated with the respectivearea activity summary. In some examples, the client network nodepresents a respective link to notes or follow-up tasks associated with arespective area activity.

In some examples, the client network node provides an interface forspecifying a search for area activity summaries of respective areaactivities in terms of one or more: communicants present during therespective area activities; one or more zones of the virtual area inwhich the respective area activities occurred; and a time overlappingwith occurrence of the respective area activities.

In some examples, the client network node displays a visualization of avirtual area together with the visualization of the area activitysummaries. In these examples, the client network node typically depictsgraphical representations of respective communicants who are present inthe virtual area. The client network node also typically providesinteraction controls for managing realtime communications with one ormore of the communicants in the virtual area. In some examples, thevirtual area includes zones each of which supports establishment ofrespective presences of communicants operating respective client networknodes, and the area activities occur in respective ones of the zones. Insome of these examples, the visualization of the virtual area includes aspatial arrangement of graphical depictions of the zones and thegraphical representations of communicants are shown in respective onesof the graphical depictions of the zones.

FIG. 22A shows an example of the graphical user interface 500 after theuser has selected the Activity Feed button 530, which caused thecommunications application 26 to retrieve from the virtual area platform18 the Sococo Spaces application web interface (referred to as the “areaactivity interface”) that includes an activity visualization toolbar 630and an activity feed section 632 and to render that web interface in theviewer panel of the graphical user interface 500.

The activity visualization toolbar 630 includes an activity view control634, a timeline view control 636, an area edit control 637, and a searchcontrol 638. The activity view control 634 directs the browser component428 (FIG. 7A) to request an area activity view on the area object datafrom the API server 432 (FIG. 7A) and to present that view in theactivity feed section 632 of the area activity interface. The timelineview control 636 directs the browser component 428 to request an areaactivity view on the area object data from the API server 432 and topresent that view in the activity feed section 632 of the area activityinterface. The area edit control 637 directs the browser component 428to bring up in the viewer panel an area edit interface that allows theuser (assuming the user's has the required capability) to edit one ormore attributes of a virtual area (e.g., a virtual area linked to aselected one of the area activity summaries, or a virtual area in whichthe user is present). The search control 638 directs the browsercomponent 428 to render in the viewer panel of the graphical userinterface 500 a search interface that enables the user to submitsearches on any data associated with the area objects, including virtualplace, communicants, time, keywords, and content type.

The area activity interface includes a Starred Areas section 640, anIndividuals section 642, and a Topical Areas section 644 that correspondto different respective views on the area object data. The Starred Areassection 640 contains area activity summaries relating to virtual areasthat the user has indicated as being favorite areas by starring them(see, e.g., FIG. 11B). The Individuals section 642 contains areaactivity summaries relating to particular individuals whose activitysummaries were designated by the user for inclusion in the Individualssection 642. The Topical Areas section 644 contains other area activitysummaries that are associated with the user (e.g., through membership orsocial network ties).

The area activity interface additionally includes a Create Area control645 that brings up an interface for submitting a request for the virtualarea platform 18 to create a new virtual area. The Create Area requestmay include an interface of the type shown in FIG. 11B that allows theuser to name the virtual area and invite one or more contacts to thevirtual area.

In the example shown in FIG. 22A, the user has activated the activityview control 634. In response to this selection, the browser component428 generates an activity view that shows in each section 640, 642, 644a respective list of summaries 646 of all ongoing and completedactivities in the virtual areas associated with the user. In theactivity view example shown in FIG. 22A, the summaries 646 are presentedat a relatively low level of detail that allows the user to quicklydetermine a few essential features of each area activity. In particular,each summary 646 shows a respective label 648 (e.g., “SciFi Buffs”), anactivity description 650 that includes a list 652 of at least some ofthe activity participants (e.g., “Fran and Ed”) and an indication 654 ofthe type of activity (e.g., “watching ‘Prometheus”), and a statusindicator 656 (e.g., “Active”). The virtual area platform 18 typicallygenerates the area labels 648, the activity descriptions 650, and thestatus indicators 656 automatically from the data associated with therespective area objects.

Each summary 646 also includes a hidden collapsible content area thatcontains additional details regarding the respective assembly. Selectinga respective ellipsis control 658 reveals the hidden content area. FIG.22B shows an example of a collapsible content area 660 that is revealedin response to user selection of the ellipsis control 658 for the toparea activity summary shown the activity view of FIG. 22A. In theillustrated example, the collapsible content area 660 includes the mostrecent portion of the chat history that is associated with therespective area activity (i.e., “Fran: Have you seen Alien?”), a link662 that brings up a notes interface for creating, reading, updating, ordeleting notes that are associated with the respective area activity, alink 664 that brings up a contacts interface for seeing the status of orcommunicating with one or more of the participants of the respectivearea activity, and an indication 666 of the number of praises that areassociated with the respective area activity. The collapsible contentarea 660 also includes a praise control 668 for submitting an indicationof praise (or like) for the respective area activity and a commentcontrol 670 for submitting a comment in connection with the respectivearea activity.

FIG. 23 shows an example of a timeline view that the browser component428 generates in the viewer panel of the graphical user interface 500 inresponse to the user activation of the timeline view control 636. Inthis example, the timeline view shows a selection 680 of the areaactivity summaries 646 for the area activities in a user-selected timeperiod that are highest in rank. In the timeline view example shown inFIG. 23, the summaries 646 are presented at the level of detail shown inFIG. 23, in which the collapsible content areas are revealed. Thesummaries 646 in the selection 680 are arranged in chronological orderon either side of a timeline 682. The timeline view includes a control684 that allows the user to select the desired time period. In theillustrated example, the user has selected “today” as the time period,in which case the timeline view shows summaries for the highest rankedongoing and completed area activities that occurred today. The timelineview allows users to quickly find the summaries for key assemblies thatoccurred during the selected time period.

FIG. 24 shows an example of a search interface that the browsercomponent 428 generates in the viewer panel of the graphical userinterface 500 in response to the user activation of the search control638. In general, the virtual area platform 18 is able to search on anydata associated with the meeting objects. In the example shown in FIG.24, the search interface includes respective text boxes 690, 692, 694,696, 698 in which the user can enter criteria for filtering assembliesby place (e.g., by virtual area, and zone), participants (e.g., e.g.,communicant names or roles), time, keywords (e.g., text appearing innotes, follow-ups, and chat logs), and content type (e.g., audio, video,chat, and screen share).

FIG. 25A shows an example of the graphical user interface 500 after theuser has selected the viewer panel button 530 and the SciFi Buffs areaactivity summary 646 shown in FIG. 22A. The browser component 428transmits the user's selection of the viewer panel button 530 to thevirtual area platform 18, which returns an updated version of thegraphical user interface 500 that includes a side pane 700 that containsthe area activity interface and a center pane 702 that contains avisualization of the current realtime activity in the virtual area/zonethat is the subject of the selected area activity summary 646 and thechat interface.

The side pane 700 shows a condensed view of the area activity summaries646. In the illustrated example, instead of listing each of the areaactivities summaries for each of the contacts included in theIndividuals section 642, the area activity summaries are grouped byindividual and each group is labeled with a respective indication 704,706 of the number of area activity summaries in the group. In otherexamples, the area activity summaries in the Starred Areas section andthe Topical Areas section also are grouped by virtual area in order tofurther condense the view of the area activity summaries.

The center pane 702 includes a main stage section 708 and a chat section710. The main stage section 708 of the center pane 702 shows aninterface 712 for the particular activity that is the subject of theselected area activity summary 646. In the illustrated example, theinterface 712 corresponds to a video playback module for rendering thestreaming video (i.e., “Prometheus”) that is being co-consumed by theuser's contacts (i.e., Fran and Ed) who are present in the Video_Modulezone of the SciFi Buffs virtual area. The chat section 710 of the centerpane 702 shows the chat interface that presents the chat history for theSciFi Buffs virtual area and controls for sending chat messages to theother communicants in the SciFi Buffs virtual area.

As indicated in the people panel 504 and in the location bar 532, theuser (i.e., Art) has not entered the SciFi Buffs virtual area as aresult of the selection of the area activity summary 646. Instead, theuser's presence remains in its current location, namely the Audio_Moduleof Area 1. However, by selecting the area activity summary 646, the useris able to lurk in the area/zone (i.e., the Video_Module zone of theSciFi Buffs virtual area) that is the subject of the selected areaactivity summary 646. In this example, only a single communicant(referred to as a “moderator”) who is present in the Video_Module zonecan control playback of the streaming video content at a time; the usercan only passively participate in the co-consumption of the streamingvideo content that is controlled by the moderator. In this way, the useris able to experience the content that is being co-consumed by thecontacts in the subject area/zone and view the chat history for thatarea/zone. Based on this realtime information, the user readily candetermine whether or not to participate in the co-consumption of thecontent or otherwise interact with his contacts in the subjectarea/zone. By selecting different area activity summaries in the sidepane 700, the user can quickly toggle between different contexts beforedeciding whether or not to establish a presence in a different virtuallocation.

The user can enter the Video_Module of the SciFi Buffs virtual area byselecting the Enter SciFi Buffs control 714 or by selecting the label716 for the Video_Module capsule 718 of the SciFi Buffs section 720 ofthe people panel 504.

FIG. 25B shows an example of the graphical user interface 500 after theuser has entered the Video_Module zone of the SciFi Buffs virtual area.The user's changed location of presence is reflected the people panel504 which shows the user (Art) in the Video_Module capsule 718 of theSciFi Buffs section 720, and in the location bar 532 which shows theuser's current location in SciFi Buffs/Video_Module. In addition towatching the streaming video being controlled by the moderator, the usernow can actively participate in the co-consumption of the streamingvideo content presented in the display area of the video playback module712 by selecting a “take control” button 722, which causes control thevideo playback functionality to be transferred from the currentmoderator to the user (who becomes the new moderator). The user also cancommunicate with the other communicants who are in the Video_Module zonevia voice and chat.

In some examples, the Sococo Spaces application 438 (FIG. 7B) deliversone or more user interfaces that enable a user to specify one or moreproperties of an area object (e.g., an area label), specify which typesof area activity data should be recorded by the server node 430 andassociated with the area object, and enter notes, follow-up tasks,comments, praise, and other feedback.

FIG. 26 shows the graphical user interface 500 after the user hasselected the area edit control 637, which directs the browser component428 to bring up in the viewer panel an area edit interface 730 thatallows the user (assuming the user's has the required capability) toedit one or more attributes of a virtual area (e.g., a virtual arealinked to a selected one of the area activity summaries, or a virtualarea in which the user is present). The area edit interface 730 includesa Name input box 732 for specifying a name (e.g., “SciFi Buffs”) for thevirtual area, various check boxes 734 for adding voice chat to thedefault text chat functionality that is associated with each new virtualarea, for specifying which types of area activity data (e.g., audiodata, screen share data, and chat data) should be recorded by the servernode 430 and associated with the associated area object, and forspecifying that the virtual area should be managed as a private virtualarea instead of being managed as a public virtual area by default. Thearea edit interface 730 also includes a control 736 for saving thespecified area properties, a control 738 for opening a notes interface,a control 740 for opening a tasks interface, a control 742 for stoppingthe recording of data associated with the virtual area or the user'scurrent zone of presence in the virtual area, a control 743 for adding azone to the virtual area, and a control 744 for deleting the virtualarea.

In some examples, the browser component 428 automatically brings up thearea edit interface 730 without requiring the user to activate the areaedit control 637. In one example, upon receiving an area creationrequest from a user in connection with context data (e.g., one or moreof content, people, and location data), the server node 430 creates anarea object for a new virtual area and sends a notification and theunique identifier for the new area object to the communicationsapplication 426 running on the user's client node. The communicationsapplication 426 passes the unique identifier of the area object to thebrowser component 428, which retrieves the Sococo Spaces applicationuser interface specification and application logic from the web server434 and renders the area edit interface 730 in the viewer panel.

FIG. 27 shows an example 800 of the virtual area platform 18 connectedto a virtual presence apparatus 802 in a real-world physical space 804(Matt's) and the user's client network node 12. In the illustratedexample, the virtual presence apparatus 802 is positioned on a stand 806in a real-world living room containing two communicants 808, 810.

The virtual presence apparatus 802 typically includes software andhardware resources that enable the virtual presence apparatus 802 toconnect to the virtual area platform 802 and the client network node 12,either directly (e.g., peer-to-peer) or through a hosted networkconnection. In some examples, the virtual presence apparatus 802 or anetwork node hosting the virtual presence apparatus includes a completeor modified version of the communications application 26, which providesfunctions for communicating with the virtual area platform 800 andestablishing network connections and communicating realtime data streamswith client network nodes. When connected to the virtual area platform800, the virtual presence apparatus 802 can be registered in associationwith and/or logged into the one or more virtual areas. The registrationdata typically includes the globally unique identifier of the virtualpresence apparatus 802 and configuration data. The configuration datamay include, for example, a device type identifier, an indicationwhether the virtual presence apparatus 802 should be associated with anexisting virtual area or a new virtual area, one or more conditions onthe availability of the associated virtual area (e.g., the associatedvirtual area is accessible to communicants conditioned on the virtualarea apparatus 802 being present in or logged into the virtual area), aspecification of the source and sink capabilities of the virtualpresence apparatus 802, a specification of a graphical representation ofthe virtual presence apparatus 802, and identification of communicantswho automatically should be designated as members of virtual areas inwhich the virtual presence equipment is present. When logged into avirtual area, the virtual presence apparatus 802 transduces humanperceptible stimulus (e.g., audio, visual, mechanical, and other sensorystimulus) between the client network nodes of communicants who arepresent in the virtual area and the physical space 804. In this way, thevirtual presence apparatus 802 bridges a physical experience of thephysical space 804 to communicants in the one or more virtual areas(i.e., communicants who are present in the virtual areas) and bridgescommunicant interactions in the one or more virtual areas tocommunicants in the physical space 804. Exemplary virtual presenceapparatus are described in U.S. application Ser. No. 13/554,051, filedJul. 20, 2012, and U.S. application Ser. No. 13/554,084, filed Jul. 20,2012.

The virtual presence apparatus 802 is a virtual area enabled device thatintegrates a speakerphone and a video camera. The speakerphone includesa microphone that converts human voice sounds projected into thephysical space 804 by the communicants 808, 810 into output voice datathat is transmitted to the client network nodes of the communicants whoare present in a particular virtual area, and a speaker that projectshuman voice sounds received from the client network nodes into thephysical space 804. The video camera captures images of a scene in thephysical space 804 (e.g., images of the communicants 808, 810) andconverts the captured images into output image data that is transmittedto the client network nodes of communicants who are present in theparticular virtual area.

The virtual area platform 800 typically creates a new virtual area inresponse to a determination that one or more specified predicates on thestate of the physical space 804 are satisfied. Examples of suchpredicates include: a person has entered the physical space 804; atleast two persons have entered the physical space 804; a threshold timeperiod (e.g., one or more persons have been in the physical space 804for at least three minutes); and the television 814 has been turned on.

In some examples, the virtual presence apparatus 802 includesfunctionality (e.g., image-based motion and face detection technologies)for determining when one or more persons have entered the physical space804, determining the identities of those persons, determining when thetelevision 814 has been turned on, and reporting such information to thevirtual area platform 800.

In other examples, the virtual area platform 800 performs the persondetection and identified processes. In some examples, the virtual areaplatform 800 receives location data (e.g., Global Positioning System(GPS) data) that is associated with the communicants 808, 810 (e.g., bya GPS component of a mobile device, such as a mobile phone or othermobile communication device), and determines that the communicants arein Matt's physical space 804 based on comparison of the receivedlocation data with location data associated with the physical space. Insome examples, the virtual area platform 800 receives audio data fromthe speakerphone component of the virtual presence apparatus 802, andassociates the audio data with a communicant in the physical space basedon comparison of the audio data with one or more voice data recordsassociated with the communicant. The voice records typically correspondto voiceprints (also referred to as voice templates or voice models)that are created from features that are extracted from the recordedspeech of known communicants in accordance with a speaker recognitionenrollment process. Each voiceprint is associated with the identity of aparticular communicant. The virtual area platform 800 associates theaudio data with the communicant in response to a determination thatfeatures extracted from the audio data correspond to the voiceprintpreviously associated with the communicant. In this way, the virtualarea platform 800 can automatically identify communicants who are in thephysical space without requiring them to login through respective clientnetwork nodes. Once a particular communicant in the physical space 804has been identified, the virtual area platform 800 can automaticallyestablish a presence for that communicant in the virtual area associatedwith the virtual presence apparatus 802 and track utterances from thatcommunicant in the audio data captured by the virtual presence apparatus802 such that visual cues indicative of the state of that communicant'svoice (e.g., speaking or silent) can be presented in the spatialvisualization of the virtual area that is displayed to the remotecommunicant on the remote client network node 12.

After the virtual area platform 800 has determined that a specifiedphysical space state predicate has been satisfied, the virtual areaplatform 800 instantiates a new virtual area. The new virtual areatypically is associated with a name (e.g., a base name obtained from theregistration data associated with the virtual presence apparatus 802together with a contextual name indicative of the context that triggeredthe creation of the virtual area—e.g., “Matt's—Watching Goonies”).

The virtual area platform 800 also establishes a presence in the virtualarea for the virtual presence apparatus 802, and publishes area activitysummaries describing activity in the virtual area to communicants (e.g.,all members of the virtual area platform service, only the designatedmembers of the virtual area, or only the designated members and thosecommunicants who have a social network tie to the designated members).The area activity summaries include links that allow communicants tonavigate to the virtual area. In response to a request from acommunicant to navigate to the virtual area, the virtual area platform800 sends provisioning instructions for establishing respective sessionsbetween the virtual presence apparatus 802 and the client network nodeof the communicant and for displaying a graphical representation of thevirtual area.

FIG. 27 shows an example of the graphical user interface 500 after theuser (Art) has selected the published area activity summary for thenewly created virtual area “Matt's—Watching Goonies.” The main stagesection 708 of the graphical user interface 500 shows a visualization ofthe current realtime activity in the physical space 802 and the chatsection 710 of the graphical user interface 500 shows a log of eventsassociated with the virtual area. In the illustrated example, Matt andJill area watching the movie “Goonies” on the television 814. The movieis being streamed from a network video streaming service (e.g., theNetflix® streaming media service) through an intermediate node of thevirtual area platform 800 (e.g., an intermediate network node of thetype described in U.S. Provisional Application No. 61/597,757, filedFeb. 11, 2012) that is integrated (e.g., through respective videostreaming plugins) with the network video streaming service, thetelevision 814, and the client network node 12. In this way, the usercan watch the streaming video being controlled by a moderator in thephysical space 804. In addition, the user can actively participate inthe co-consumption of the streaming video content presented in thedisplay area of the video playback module 712 by selecting the “takecontrol” button 722, which causes control the video playbackfunctionality to be transferred from the current moderator to the user(who becomes the new moderator). The user also can communicate with thecommunicants 808, 810 who are in the physical space via voice throughthe virtual presence apparatus 802.

III. Conclusion

Other embodiments are within the scope of the claims.

1. A method, comprising: in a network communications environmentsupporting realtime communications between respective network nodes of auser and other communicants, receiving a request from the user's networknode in connection with a content item; based on the request, creating avirtual area that supports establishment of communicant presence and isassociated with the content item; and in connection with the contentitem, administering realtime communications between network nodesoperated by respective communicants who are present in the virtual area.2. The method of claim 1, wherein the content item comprises image-basedcontent.
 3. The method of claim 2, wherein the image-based contentcomprises video content.
 4. The method of claim 1, wherein the contentitem comprises conversation content.
 5. The method of claim 4, whereinthe conversation content comprises a topic thread.
 6. The method ofclaim 1, wherein the content item comprises activity feed contentdescribing activity of one or more communicants.
 7. The method of claim1, wherein the content item comprises syndicated web feed content. 8.The method of claim 1, wherein the receiving comprises receiving therequest from a web browser component of the user's network node inconnection with a universal resource locator (URL) value associated withthe content item, and the creating comprises associating the URL withthe virtual area.
 9. The method of claim 1, wherein the requestcomprises an identifier of the user, and the creating comprisesdesignating the user as a member of the virtual area.
 10. The method ofclaim 9, wherein the request comprises a respective identifier of eachof one or more other communicants, and the creating comprisesdesignating each of the one or more other communicants as a respectivemember of the virtual area.
 11. The method of claim 1, furthercomprising sending a list of communicants to the user's network node,wherein the request includes the user's selection of one or morecommunicants in the list, and the creating comprises designating each ofthe one or more selected communicants as a respective member of thevirtual area.
 12. The method of claim 1, wherein the request comprisesan identifier of the content item, and the creating comprisesassociating the content item identifier with the virtual area.
 13. Themethod of claim 1, wherein the request comprises a topic label, and thecreating comprises associating the topic label with the virtual area.14. The method of claim 1, wherein the creating comprises associatingthe virtual area with information relating to communicant interactionsin the virtual area.
 15. The method of claim 1, further comprisingrecording text chat data transmitted between communicants in the virtualarea, wherein the creating comprises associating the recorded text chatdata with the virtual area.
 16. The method of claim 1, furthercomprising recording one or more data streams transmitted betweencommunicants in the virtual area, wherein the creating comprisesassociating the one or more recorded data streams with the virtual area.17. The method of claim 16, wherein the recording comprises recording atleast one application sharing data stream transmitted betweencommunicants in the virtual area.
 18. The method of claim 1, furthercomprising determining a log of event descriptions from the informationrelating to communicant interactions in the virtual area, andtransmitting the log of event descriptions to the network nodes ofrespective ones of the communicants who are present in the virtual area.19. The method of claim 1, further comprising determining summary datafrom information relating to communicant interactions in the virtualarea, and publishing the summary data as an activity feed forsubscribing network nodes.
 20. The method of claim 19, wherein thepublishing comprises incorporating into the summary data a link fornavigating to the virtual area.
 21. The method of claim 1, furthercomprising transmitting to the user's network node an activity feed ofactivity items describing respective activities of communicants inanother virtual area, and based on user selection of a respective one ofthe activity items in the activity feed navigating the user to the othervirtual area.
 22. The method of claim 1, further comprising, based on asecond request received from the user in connection with a secondcontent item, associating the second content item with the virtual area.23. The method of claim 1, wherein the administering comprisesadministering synchronous sharing of the content item by the networknodes of respective ones of the communicants who are present in thevirtual area.
 24. The method of claim 1, wherein the administeringcomprises connecting complementary sources and sinks of respective onesof the network nodes of communicants who are present in the virtualarea.
 25. Apparatus, comprising: a computer-readable memory storingcomputer-readable instructions; and a data processor coupled to thememory, operable to execute the instructions, and based at least in parton the execution of the instructions operable to perform operationscomprising in a network communications environment supporting realtimecommunications between respective network nodes of a user and othercommunicants, receiving a request from the user's network node inconnection with a content item, based on the request, creating a virtualarea that supports establishment of communicant presence and isassociated with the content item, and in connection with the contentitem, administering realtime communications between network nodesoperated by respective communicants who are present in the virtual area.26. At least one computer-readable medium having computer-readableprogram code embodied therein, the computer-readable program codeadapted to be executed by a computer to implement a method comprising:in a network communications environment supporting realtimecommunications between respective network nodes of a user and othercommunicants, receiving a request from the user's network node inconnection with a content item; based on the request, creating a virtualarea that supports establishment of communicant presence and isassociated with the content item; and in connection with the contentitem, administering realtime communications between network nodesoperated by respective communicants who are present in the virtual area.27-67. (canceled)